use*_*702 7 visual-studio visual-studio-extensions
我正在使用的一些扩展在VS2012下被破坏,因为在某些时候它们通过更改引用库的版本而更新为与VS2013一起使用.在运行时,可能会产生这样的错误:
无法加载文件或程序集"Microsoft.VisualStudio.Shell.12.0,Version = 12.0.0.0,Culture = neutral,PublicKeyToken = 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" />
Run Code Online (Sandbox Code Playgroud)其他人发布每个VS版本的扩展.
我想帮助修复这些扩展,但是解决这个问题的正确方法是什么?
Jas*_*ski 11
因此,Visual Studio引用程序集分为几个不同的类别,您应该根据类别进行不同的处理:
这里棘手的问题是VSSDK项目升级者喜欢将您的项目升级到更新的版本.习惯于手动编辑MSBuild文件以确保它不会执行此操作,或降级它已经执行的操作.对于发送给用户的最终VSIX,通常最好使用较旧版本的VS进行构建,以确保它不会意外地获取更新的东西.如果您只想使用较新版本,则必须从您希望使用的旧版本中找到VS二进制文件,并将其检入源控制系统,以确保旧版本仍然被选中.如果你走这条路,测试你的VSIX,因为很容易出错,并偶然引用更新的东西.
我写了一篇文章,讨论Visual Studio程序集使用的各种程序集版本控制策略.
http://tunnelvisionlabs.github.io/vsbase/docs-master/html/edbfd3ce-43f4-4f3f-a90c-bc22bda19fae.htm
此外,VSSDK.*NuGet包使用依赖性声明来帮助您识别Visual Studio的每个扩展可以使用的版本.
您引用的特定版本的Microsoft.VisualStudio.Shell是一个Versioned Assembly(按照上一篇文章)并包含在VSSDK.Shell.12包中,其中包含以下描述:
此包提供Visual Studio 2013及更高版本使用的Visual Studio"Shell"引用程序集.
要轻松定位Visual Studio 2012和Visual Studio 2013,请使用NuGet管理VS SDK依赖项,并确保满足以下条件:
理想情况下,您只需要安装包含vs2012和vs2013标记的VSSDK NuGet包.
| 归档时间: |
|
| 查看次数: |
4014 次 |
| 最近记录: |