3

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

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

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

这是它目前的样子 这是它目前的样子


这就是我想要的样子。 在此处输入图像描述


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


如果有帮助,这是我在 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) 任何帮助表示感谢,谢谢。

4

1 回答 1

3

我已经想通了。希望这对其他人有用。

Simon Mourier的评论(感谢 Simon)让我以一种不同的方式思考这个问题。

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

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

vs模板设置

于 2018-08-14T11:53:25.847 回答