VS 2015项目模板,用于自定义文件,可以在所有跨平台的Project / SubProject上添加

时间:2017-02-02 23:34:48

标签: c# visual-studio-2015 vsix itemtemplate

目前我的一个要求是将具有前缀 .zbl 的特定文件添加到任何类型的项目,如“共享”,“类库”,UWP等。我正在使用ITEM TEMPLATE Project跟踪VSIX方法。

问题是,当您使用非类库项目时,您无法在项目中找到您的项目 - >添加新项目 - >新的自定义项目,例如“Page.zbl”

此问题来自HERE,因为MSDN说项目模板可以分为4类:Windows / Office / Database / Web

你也不能在模板文件中设置多个上述值,那么如何将项目模板添加到VS 2015,所有项目类型都可以访问?

这是我的样本VS ItemTemplate:

# Define a minimum version (Win7 family pre-release build)
$MinimumVersion = [version]'6.1'

# Fetch ProductType from WMI
$OSType = (Get-WmiObject -Class Win32_OperatingSystem -Property ProductType).ProductType

if($OSType -eq 1 -and [Environment]::Version -ge $MinimumVersion){
    # client OS, 7 or newer
}

1 个答案:

答案 0 :(得分:0)

假设VS 2015[Update 3]是当前稳定的开发环境,首先让我们看看这些路径上的VS结构(赢10):

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

有一些文件夹代表VS-IDE的当前项目模板,据我测试,你不能在那里添加你的cusotm文件夹来分离你的模板,因此你需要选择一个作为参考,如 CSharp < / strong>(对于TemplateID需要这个),

2 /接下来,您需要在Item-Template项目上设置以下配置FOR 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 /其他配置应该通过Propery窗口应用于模板属性和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

如果您无法通过在具有管理员心情的CMD中运行以下命令来查看结果,则需要重新启动VS

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE>devenv /setup