【发布时间】:2023-03-16 00:38:01
【问题描述】:
我创建了一个 ItemTemplate 项目。我想将其安装到自定义文件夹。当我手动将从项目构建的 zip 文件添加到 ItemTemplates 中的命名文件夹时,这可以正常工作。
我现在使用两个项目,原始的 ItemTemplate 项目和一个 VSIX 项目进行安装。
我面临的问题是,当使用 VSIX 项目安装模板时,安装路径会在我的自定义文件夹中添加一个名为 CSharp 的额外文件夹。仅当我将 ItemTemplate 项目作为项目添加到 VSIX 项目时才会发生这种情况。如果我将 ItemTemplates 项目的输出(zip 文件)添加到 VSIX 项目,则模板位于正确的位置。
已使用 vsixmanifest 中的 Assets 部分将 ItemTemplate 项目添加为 VSIX 项目中的参考项目。下图中的属性是 VSIX 项目的引用部分中 ItemTemplate 项目的属性。
如果有帮助,这是我在 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) 任何帮助都非常感谢,谢谢。
【问题讨论】:
-
我为此掉了很多头发。我记得你必须有两个独立的项目:一个用于代码(VSIX 扩展),另一个用于模板。模板类似于 VSIX msbuild 任务用来添加到主 VSIX 部署包的占位符。这是唯一有效的布局,我从来没有设法只有一个带有代码和模板的 VSIX 项目。
-
嗨,西蒙,是的,我也发现了。抱歉,如果不清楚,但我正在使用两个项目,一个 itemtemplate 项目和一个 VSIX 项目 - 我已经更新了我的问题以反映这一点。
-
你用的是最新的VS 2017吗?我没有您拥有的相同属性,并且我的 VSIX 子路径未设置(默认)。
-
是的,VS2017 (15.7.4) 不是最新的,但几乎是最新的。已使用 vsixmanifest 中的 Assets 部分将 ItemTemplate 项目添加为 VSIX 项目中的参考项目。该图像中的属性是 VSIX 项目的引用部分中的 ItemTemplate 项目的属性。我希望这是有道理的。我将再次编辑我的问题
标签: vsix project-template visual-studio-templates vsixmanifest