Visual Studio 2013/2015 C ++ Шаблоны элементов отсутствуют

Я пытаюсь создать несколько простых шаблонов элементов для проектов Visual Studio 2013 (Professional) C ++, но Visual Studio, похоже, борется со мной. Я начал использовать File -> Export Template... мастер, который завершил и сгенерировал zip-файл, но, увы, новый шаблон нигде не было видно на Add New Item диалог, поэтому я начал вручную редактировать его, чтобы посмотреть, смогу ли я это исправить.

Вот мой тест .vstemplate файл:

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
<TemplateData>
<DefaultName>test</DefaultName>
<Name>Test</Name>
<Description>Test item template.</Description>
<ProjectType>VC</ProjectType>
<!--<SortOrder>10</SortOrder>-->
<Icon>icon.ico</Icon>
</TemplateData>
<TemplateContent>
<ProjectItem TargetFileName="$fileinputname$.h" ReplaceParameters="true">test.h</ProjectItem>
</TemplateContent>
</VSTemplate>

Я пытался использовать оба VC а также VisualC за <ProjectType> и размещение шаблона в различных папках, как в сжатом виде, так и в развернутом виде.

После изменения <ProjectType> в CSharp и создание проекта C #, он сразу обнаруживается. Интересно, если %USERPROFILE%\Documents\Visual Studio 2013\Templates\ItemTemplates\Visual C# каталог пуст, шаблон теперь будет отображаться, если он находится в %USERPROFILE%\Documents\Visual Studio 2013\Templates\ItemTemplates или же %USERPROFILE%\Documents\Visual Studio 2013\Templates\ItemTemplates\Visual C++ Project каталоги, но если его копия также находится в Visual C# каталог, он появляется дважды в диалоге нового элемента …

Я знаю, что в Visual Studio 2013 Express RC была ошибка, из-за которой в диалоговом окне «Новый элемент» вообще не отображались никакие шаблоны, даже встроенные, поэтому я думаю, что это может быть ошибка в Visual Studio или просто еще один пример беспокоящего Microsoft игнорирования C ++.

Я что-то здесь упускаю или это ошибка в VS2013? Если так, кто-нибудь знает какой-нибудь обходной путь?

Изменить: эта проблема все еще существует в Visual Studio 2015 RC

8

Решение

Имея ту же проблему. Обходной путь, который мне подходит, — это использовать редакцию VS2013 Express, где шаблоны элементов C ++ работают просто отлично (как и в VS2012 Pro / Express). Я понятия не имею, почему эта удобная функциональность была удалена из Pro-версии, но продолжает работать в бесплатной экспресс-версии.

5

Другие решения

Мое первое приключение с шаблонами VS, и я столкнулся с этим! Джек-пот!

После нескольких часов возни я теперь могу добавлять свои собственные шаблоны, по крайней мере, в VS Community 2013. Я считать хитрость заключается в том, чтобы добавить <TemplateGroupID>WinRT-Common</TemplateGroupID>, Для справки, этот шаблон элемента отображается для меня в пустом проекте C ++:

<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>GameEngine Core Class</Name>
<Description>Creates a header and source file for a new GameEngine Core class.</Description>
<Icon>__TemplateIcon.png</Icon>
<TemplateGroupID>WinRT-Common</TemplateGroupID>
<ProjectType>VC</ProjectType>
<DefaultName>GameEngineClassName</DefaultName>
</TemplateData>
<TemplateContent>
<ProjectItem TargetFileName="$fileinputname$.cpp" ReplaceParameters="true" OpenInEditor="true">GameEngineClass.cpp</ProjectItem>
<ProjectItem TargetFileName="$fileinputname$.h" ReplaceParameters="true" OpenInEditor="true">GameEngineClass.h</ProjectItem>
</TemplateContent>
</VSTemplate>

За TemplateGroupID, по умолчанию (VC-Native) ни VC-Windows похоже на работу (ВотВот полный список). Я не уверен, какие дальнейшие последствия положить WinRT-Common может быть. Это даже не в списке.

Еще несколько деталей: я начал с экспериментов на ComputeShader.vstemplate это идет с VS2013, помещая это в папку шаблонов и изменяя файл, пока это не то, что это теперь. В какой-то момент я понял, что очень важно поместить все в файл .zip, даже если он изначально работает, потому что Visual Studio в конечном итоге будет вести себя очень странно, когда дело доходит до обнаружения шаблонов (до того, как я понял, что это было довольно неприятно) ). Я думаю, это связано с кешем.

0

По вопросам рекламы [email protected]