В категории пользовательских шаблонов Visual Studio есть дополнительная папка

Я создал проект ItemTemplate. Я хотел бы установить это в пользовательскую папку. Это прекрасно работает, когда я вручную добавляю zip-файл, созданный из проекта, в мою именованную папку внутри ItemTemplates.

Сейчас я использую два проекта, оригинальный проект ItemTemplate и проект VSIX для установки.

Проблема, с которой я сталкиваюсь, заключается в том, что при использовании проекта VSIX для установки шаблона путь установки добавляет дополнительную папку с именем CSharp в мою пользовательскую папку. Это происходит только тогда, когда я добавляю проект ItemTemplate в проект VSIX как проект. Если я добавлю выходные данные проекта ItemTemplates, zip-файл, в проект VSIX шаблон будет расположен в правильном месте.

Вот как это выглядит в настоящее время Вот как это выглядит в настоящее время


и это то, что я хочу, чтобы это выглядело. введите описание изображения здесь


Проект ItemTemplate был добавлен в качестве ссылочного проекта в проект VSIX с использованием раздела "Ресурсы" в vsixmanifest. Свойства на изображении ниже являются свойствами проекта ItemTemplate в разделе ссылок проекта VSIX. Настройки 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, это то, что вам нужно установить.

Настройки в шаблоне

Другие вопросы по тегам