Visual Studio自定义模板类别有一个额外的文件夹

时间:2018-08-14 09:37:22

标签: vsix project-template visual-studio-templates vsixmanifest

我创建了一个ItemTemplate项目。我想将此安装到自定义文件夹。当我手动将从项目构建的zip文件添加到ItemTemplates中的命名文件夹时,此方法可以正常工作。

我现在使用两个项目,原始的ItemTemplate项目和一个VSIX项目进行安装。

我面临的问题是,在使用VSIX项目安装模板时,安装路径会在自定义文件夹中添加一个名为CSharp的额外文件夹。仅当我将ItemTemplate项目作为项目添加到VSIX项目时,才会发生这种情况。如果将ItemTemplates项目的压缩文件zip文件添加到VSIX项目,则模板位于正确的位置。

这是目前的样子 This is how it currently looks


这就是我想要的样子。 enter image description here


使用vsixmanifest中的Assets部分,已将ItemTemplate项目添加为VSIX项目中的参考项目。下图中的属性是VSIX项目的“引用”部分中ItemTemplate项目的属性。 VSIX Settings


如果有帮助,这是我在ItemTemplate项目中使用的vstemplate文件。

<?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 个答案:

答案 0 :(得分:1)

我知道了。希望这对其他人有用。

Simon Mourier的评论(感谢Simon)使我以不同的方式思考问题。

我一直在想VSIX项目包含有关在何处安装ItemTemplate的所有信息,但是事实并非如此,实际上是ItemTemplate项目本身包含此信息。

由此我发现,如果您查看ItemTemplate项目中vstemplate文件的属性,则会发现需要设置的Category字段。

vstemplate settings