Visual studio VSIX 项目,安装 .vsix 时未找到项目模板引用

Visual studio VSIX project, projecttemplate reference not found when the .vsix is installed

我目前正在处理一个 C# VSIX 项目。在解决方案中,有一个带有 ItemTemplate 文件的 VSIX 项目,还有一个输出为 class 库的 ProjectTemplate 项目。

ProjectTemplate 项目引用本地 .dll 文件,VSIX 项目引用 ProjectTemplate 项目。在实验实例中启动时,一切正常,在制作发布版本并将其安装在我自己的机器上时,一切仍然很好。当我在另一台机器上安装 .vsix 文件时,可以按预期添加所有模板,但项目模板无法再找到 .dll 引用。

我没有足够高的代表 post 图片,但我得到的错误是一般缺少指令或程序集引用。 (错误代码:CS0246)

如何防止引用被破坏?

值得注意的是,对 projectTemplate 的引用是通过 SideWaffle 扩展完成的。

TL:DR: ProjectTemplate 中对本地 .dll 文件的引用在 运行 另一台计算机上的 .vsix 文件之后中断。

编辑: 所以基本上我想有一种方法也可以在目标机器上部署 .dll 文件,这样引用就不会中断。但我只想发送 .vsix-file

感谢@rene,这个 post: How to include VSIX output in it's package? 和一些摆弄,我设法让它工作。将这些 VSIXProject 属性设置为 true

"Copy Build Output to Output Directory"
"Copy Debug Symbols to Output Directory"
"Include Assembly in VSIX Container"
"Include Debug Symbols in Local Deployment"
"Include Debug Symbols in SIX Container"

另外将 .dll 文件添加到您的 VSIX 项目和 ProjectTemplate-Project。当 运行 .vsix 在另一台机器上时,它会在使用 ProjectTemplate 创建它时将 .dll 添加到新项目文件夹并设置引用的正确路径 属性。