visual-studio - 如何在 Visual Studio 扩展 (vsix) 中包含 Nuget 包

标签 visual-studio visual-studio-2015 nuget vsix

我创建了一个 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

  • 请参阅 Min(2013 年 8 月 28 日)关于他的 YouTube 视频
  • 的回答
  • 并注意 KyleMit 关于在相当长的视频中出现的位置的评论。

  • 修复相当冗长,因此最好在他的视频中呈现。

    关于visual-studio - 如何在 Visual Studio 扩展 (vsix) 中包含 Nuget 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40532807/

    相关文章:

    c# - 在 aspx 页面中显示 python 的输出

    c++ - 谷歌测试预构建 VS 2013

    visual-studio-2015 - 如何仅在解决方案级别设置 nuget 包 allowedversion?

    asp.net-core - ASP.NET 5 的 Web 服务器,无需调试即可工作

    css - Gulp 不会忽略带下划线的 SASS 偏音

    c++ - 如何避免与 native NuGet 包发生重复的 DLL 冲突?

    azure - 在 .Net Core 项目中使用 Microsoft.WindowsAzure.SDK 发出警告

    c# - 如何立即抛出 List<CustomExceptionObj> 异常

    c++ - 如何在 C++ 中调用 KeBugCheck 或 KeBugCheckEx

    visual-studio - 重构要点与 Resharper