В категории пользовательских шаблонов Visual Studio есть дополнительная папка
Я создал проект ItemTemplate. Я хотел бы установить это в пользовательскую папку. Это прекрасно работает, когда я вручную добавляю zip-файл, созданный из проекта, в мою именованную папку внутри ItemTemplates.
Сейчас я использую два проекта, оригинальный проект ItemTemplate и проект VSIX для установки.
Проблема, с которой я сталкиваюсь, заключается в том, что при использовании проекта VSIX для установки шаблона путь установки добавляет дополнительную папку с именем CSharp в мою пользовательскую папку. Это происходит только тогда, когда я добавляю проект ItemTemplate в проект VSIX как проект. Если я добавлю выходные данные проекта ItemTemplates, zip-файл, в проект VSIX шаблон будет расположен в правильном месте.
Вот как это выглядит в настоящее время
и это то, что я хочу, чтобы это выглядело.
Проект ItemTemplate был добавлен в качестве ссылочного проекта в проект VSIX с использованием раздела "Ресурсы" в vsixmanifest. Свойства на изображении ниже являются свойствами проекта ItemTemplate в разделе ссылок проекта VSIX.
Если это поможет, это файл vstemplate, который я использую в проекте ItemTemplate.
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:sdk="http://schemas.microsoft.com/developer/vstemplate-sdkextension/2010">
<TemplateData>
<Name>Generator</Name>
<Description></Description>
<Icon>Magic.Generator.ico</Icon>
<TemplateID>Magic.Generator</TemplateID>
<TemplateGroupID>Magic</TemplateGroupID>
<ProjectType>CSharp</ProjectType>
<RequiredFrameworkVersion>2.0</RequiredFrameworkVersion>
<NumberOfParentCategoriesToRollUp>2</NumberOfParentCategoriesToRollUp>
<DefaultName>Generator.cs</DefaultName>
</TemplateData>
<TemplateContent>
<ProjectItem ReplaceParameters="false">Generator.cs</ProjectItem>
</TemplateContent>
</VSTemplate>
Я использую VS2017 (15.7.4). Любая помощь приветствуется, спасибо.
1 ответ
Я понял это. Надеюсь, это будет полезно для других.
Комментарий Саймона Мурье (спасибо Саймону) заставил меня подумать о проблеме немного по-другому.
Я думал, что проект VSIX содержал всю информацию о том, где установить ItemTemplate, однако это не тот случай, это сам проект ItemTemplate, который содержит эту информацию.
Из этого я обнаружил, что если вы посмотрите на свойства файла vstemplate в проекте ItemTemplate, вы найдете поле Category, это то, что вам нужно установить.