我目前正在开发一个C#VSIX项目。在解决方案中,有一个带有ItemTemplate文件的VSIX项目,还有一个ProjectTemplate项目,它作为类库输出。
ProjectTemplate项目引用本地.dll文件,VSIX项目引用ProjectTemplate项目。当在实验实例中启动时,一切都按预期运行,在进行发布构建并在我自己的机器上安装时,一切都还可以。当我在另一台机器上安装.vsix文件时,可以按照预期添加所有模板,但项目模板无法再找到.dll参考。
我没有足够高的rep来发布图像,但我得到的错误是一般缺失指令或程序集引用。 (错误代码:CS0246)
如何保持参考不被破坏?
值得注意的是,对ProjectTemplate的引用是使用SideWaffle扩展完成的。
TL:DR:在另一台计算机上运行.vsix文件后,ProjectTemplate中对本地.dll文件的引用中断。
编辑所以基本上我想要有一种方法在目标机器上部署.dll文件,这样引用就不会中断。但我只想发送.vsix文件
答案 0 :(得分:1)
感谢@rene,这篇文章:How to include VSIX output in it's package?和一些摆弄,我设法让它工作。将这些VSIXProject属性设置为 true :
“将构建输出复制到输出目录”
“将调试符号复制到输出目录”
“在VSIX容器中包含程序集”
“在本地部署中包含调试符号”
“在SIX容器中包含调试符号”
另外将.dll文件添加到VSIX项目和ProjectTemplate-Project。在另一台机器上运行.vsix时,它会在使用ProjectTemplate创建它时将.dll添加到新项目文件夹中,并设置引用的正确路径属性。