2017-02-02 4 views
0

В настоящее время одним из моих требований является добавление определенного файла с префиксом под названием .zbl в любой проект, например «Shared», «class» библиотека ', UWP и т. д. Я следую VSIX-подходу с ITEM TEMPLATE Project.VS 2015 Шаблон элемента для настраиваемого файла с возможностью добавления на все кросс-платформенное Project/SubProject

Проблема заключается в том, когда вы находитесь на неклассовых библиотечных проектов, вы не можете найти свой товар на Проект-> Добавить новый элемент -> новый пользовательский пункт, например «Page.zbl»

Этот вопрос исходит от HERE, поскольку MSDN говорит, что шаблон элемента может быть указан в 4-х категориях: Windows/Office/Database/Web

также вы не можете установить более одного из значений выше в файле шаблона, SO Как можно добавить Шаблон позиции для VS 2015, который будет доступен для всех типов проектов?

вот мой образец VS ItemTemplate:

<VSTemplate Version="3.0.0" Type="Item"> 
<TemplateData> 
    <Name>Page1</Name> 
    <Description>An empty Zebble file</Description> 
    <Icon>zebble.ico</Icon> 
    <ProjectType>CSharp</ProjectType> 
    <ProjectSubType>??????</ProjectSubType> : HERE IS THE ISSUE 
    <DefaultName>Page1.zbl</DefaultName> 
</TemplateData> 
<TemplateContent> 
    <ProjectItem>Page.zbl</ProjectItem> 
</TemplateContent> 

ответ

0

Принято считать VS 2015[Update 3] является текущей стабильной средой разработки, первым позволяет взглянуть на strucure VS на этих путях (выиграть 10):

1/C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ ItemTemplates \

Есть несколько папок, представляющих текущие шаблоны элементов для VS-IDE, насколько я проверял, вы не можете добавить свою папку cusotm там, чтобы отделить ваш шаблон. Поэтому вам нужно выбрать один из них в качестве ссылки, например CSharp (это необходимо для TemplateID),

2/Далее необходимо установить следующую конфигурацию TemplateData узел на ваш товар-шаблон проекта:

<?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>YOUR ITEM </Name> 
    <Description>Zebble Page Tempalte </Description> 
    <Icon>ZebblePageItemTemplate.ico</Icon> 
    **<ProjectType>CSharp</ProjectType>** 
    <RequiredFrameworkVersion>2.0</RequiredFrameworkVersion> 
    **<NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>** 
    <DefaultName>Cross-platform Page.zbl</DefaultName> 
    **<TemplateID>Microsoft.CSharp.TextFile</TemplateID>** 
    **<AppliesTo>CSharp + WindowsXaml + WindowsXamlPage + WindowsXamlCodeBehind + MultiTarget</AppliesTo>** 
    <CreateInPlace>true</CreateInPlace> 
    <Hidden>false</Hidden> 
    <CreateNewFolder>true</CreateNewFolder> 
    <LocationField>Enabled</LocationField> 
    <SpecialTemplateType>EmptyShared</SpecialTemplateType> 
    <EnableLocationBrowseButton>true</EnableLocationBrowseButton>  

MyPage.zbl

3/Другие конфигурации должны быть применены на шаблоне имущих и VSIX справки через окно Недвижимости, как эти: Cross-Platform will be a node name of VSProject->AddNewItem->(LeftMenu category)

Here is Vsix project which referece to item-template as asset

и, наконец, ваш результат будет: VS result

, если вы не можете увидеть в результате вам необходимо перезапустить VS, выполнив команду в CMD с настройкой администратора

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE>devenv /setup 
Смежные вопросы