我创建了一个 Visual Studio 扩展 (VSIX),它使用 Roslyn 对我们的应用程序代码进行了更改。
VSIX 解决方案包括 NUGET 包 Microsoft.CodeAnalysis.Analyzers。顺便说一句,它被描述为版本 1.3.2,但底层 DLL(例如“Microsoft.CodeAnalysis.CSharp.dll”)都报告为 1.3.2。
无论如何,我把它放在我们本地的私有(private)画廊里。从那里,我可以将它添加到 Visual Studio (VS2015 Update 3) 并按预期执行。
但是,在我的同事将其添加到他们的 Visual Studio(VS2015 Update 3)并尝试执行后,他们收到以下消息:
Microsoft Visual Studio
Could not load file or assembly 'Microsoft.VisualStudio.LanguageServices, Version=1.3.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
OK
当我查看 VSIX 存档时,我确实看到了许多 DLL,但这些是“我的 DLL”以及所有前缀为“System.”的。我没有看到任何带有前缀“Microsoft。”的东西。我确实尝试将我的 BIN 文件夹中的每个 DLL 手动复制到 VSIX 以查看它是否会产生任何影响,但没有成功。
所有引用的 DLL 似乎都有“本地复制”,所以它们在我的 BIN 中,但最终用户的机器上无法访问它们。
我看到 list 可以同时包含“ Assets ”和“依赖项”,但目前尚不清楚这些是否可用于 NUGET 包。
我错过了什么?
最佳答案
终于找到了答案:
VSIX with Project Templates and NuGet Packages
修复相当冗长,因此最好在他的视频中呈现。
关于visual-studio - 如何在 Visual Studio 扩展 (vsix) 中包含 Nuget 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40532807/