我正在使用的一些扩展在VS2012下被破坏,因为在某些时候,它们被更新为与VS2013一起使用,通过更改引用库的版本。在运行时这样的错误可以产生:VS扩展如何针对Microsoft.VisualStudio。*引用指定多个版本?
无法加载文件或程序集“Microsoft.VisualStudio.Shell.12.0,版本= 12.0.0.0,文化=中性公钥= b03f5f7f11d50a3a”或它的一个依赖。该系统找不到指定的文件。
我看到各种扩展引用同一个库的多个版本:
<Reference Include="Microsoft.VisualStudio.Shell.Interop" /> <Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <Reference Include="Microsoft.VisualStudio.Shell.Interop.9.0, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
其他释放每VS版本的延伸。
- 根据this article,另一种选择是动态加载正确的版本。
我想帮助修复这些扩展,但解决此问题的正确方法是什么?
看看PyTools(Visual Studio项目),它相当优雅地解决了类似的问题。也就是说,您需要根据您当前的Visual Studio版本包含正确的DLL。这是用聪明的MSBuild技巧完成的。 – 2014-09-02 14:25:40