【问题标题】:Creating VSIX extension for a C++ project in a solution在解决方案中为 C++ 项目创建 VSIX 扩展
【发布时间】:2020-04-09 07:43:54
【问题描述】:
目前,我的 C++ 项目和 C# VSIX 扩展有 2 个单独的解决方案。我将 C++ 项目模板导出为 .zip 存档,并在 VSIX 扩展解决方案中将其添加为文件资产。工作正常,但是我需要一直手动处理 .zip。
为了避免这种情况,我尝试将项目(C++ + VSIX)合并到一个解决方案中,而不是添加文件资产,我尝试添加项目资产,选择我的 C++ 项目。
问题是它不起作用,VSIX 项目在尝试编译时出错:“错误 MSB4057:没有目标“TemplateProjectOutputGroup”。”而且我还没有找到任何描述必须如何完成的内容。
VS2019 社区。p>
【问题讨论】:
标签:
c#
c++
templates
vsix
【解决方案1】:
您实际上只需要一个包含多个项目的解决方案。
我过去这样做的方式是首先创建一个 Empty .VSIX 项目(用于部署模板)。
然后添加新的“C# 项目模板”项目,并修改它们以创建 C++ 项目而不是 C# 项目。请注意,核心 .csproj 文件仍然生成模板项目 C# 项目,但添加了模板有效负载(.vcxproj、.h、.cpp 等,并删除了 C# 文件。因此最终结果是模板生成了 C++项目而不是 C# 项目。
这些项目模板项目将生成 .zip 文件,然后可以将其添加到您的 .VSIX 项目中,方法是首先引用项目模板项目(也称为项目到项目引用),然后编辑 vsixmanifest 以包含引用的项目(zip 文件)作为资产。
几年前我写了一篇关于这个的博客文章,就是这样做的。虽然重点是用于设置 Windows SDK 版本的自定义向导,但对于使用模板创建的结果 C++ 项目。代码文章还包含一个指向源代码的链接,您可能会发现该链接对其他指导很有用。
Creating a VSIX Deployable C++ project template
此致,