Visual Studio扩展如何在引用TFS客户端dll时同时针对2013和2015

艾萨克·萨沃(Isaac Savo)

我有一个Visual Studio扩展名(部署为.vsix),需要同时支持Visual Studio 2013和2015。

问题在于该扩展需要与TFS进行通信,因此它使用了TFS客户端库,并且在VS2015中,这些已从GAC部署更改为消费应用程序应重新分发的nuget程序包

我应该如何设置VS包的引用,以便它在Visual Studio的两个版本上都能正常工作?


我尝试了几种方法:

  1. 引用2013 GAC dll:在VS2015计算机上加载时,找不到这些DLL。
  2. 参考2013 GAC dll,但也包含本地副本(与.vsix捆绑在一起):缺少这些DLL的其他依赖关系。
  3. 参考2015 dll(来自nuget)并与.vsix捆绑在一起:在2013和2015中均可正常加载,但在2013年不起作用(实际上使用TFS功能失败-例如,调用GetLocalWorkspaceInfo("c:\src\path")返回null)
爱德华·汤姆森

我会:

  1. 引用2013程序集,以便确保仅使用该版本中可用的API。(当然,2015年是向后兼容的。)
  2. 添加一个AssemblyResolve挂钩,以便在无法加载2013程序集的情况下可以加载2015程序集。可以使用以前版本的说明,但应该类似。

我认为选项3在大多数情况下都可以使用,但是找不到工作空间的原因是因为2013和2015使用了不同的工作空间缓存。我怀疑您可以通过建立与服务器的另一个连接并将工作空间缓存更新到2015年位置克服此问题。尽管这指出了兼容性方面的更深层次的问题:您将无法为VS连接/工作区对象挂接事件侦听器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Visual Studio 2013中的Git客户端是“离线”

启动Visual Studio 2015 SP3时的客户端身份验证错误

客户端证书和Visual Studio WSDL

如何在Visual Studio 2015中针对.NET Core引用System.Data?

如何在 Visual Studio 2019 中添加 Google MyBusiness C# 客户端库

锁定Windows 8.1时Visual Studio 2013和2015崩溃

Visual Studio 2013和2015保存失败

我可以在TFS中使用Git客户端-但不使用Visual Studio吗?

将TFS自定义签入策略自动安装到客户端Visual Studio

如何在TFS中创建分支时停止Visual Studio 2013继承团队项目安全设置

Visual Studio 2013可以在NodeJs Web应用程序中调试客户端javascript吗

如何在Visual Studio 2015中调试Mscorlib.dll

如何在 Windows - Visual Studio 上使用 C++ 将多个客户端连接到单个服务器?

Visual Studio 2015程序包扩展,未复制引用的dll

Visual Studio Mac中新的REST API客户端选项?

Visual Studio Code调试客户端JavaScript

用于Visual Studio 2010的lightswitch html客户端

如何在Visual Studio和Mac中同时使用Xamarin

TFS 2013 Build强制MSBuild使用Visual Studio 2015

使用WCF测试客户端在Visual Studio中运行WCF服务时出现NullReferenceException

Visual Studio 2013和TFS Build 2015:Devenv.exe无法生成MSI文件

如何使用Visual Studio 2003和TFS?

如何通过Visual Studio中的客户端javascript项目访问服务器的webapi项目

如何模拟由Visual Studio自动生成的SOAP客户端?

Visual Studio 2015 RC是否与Visual Studio 2013并行工作

Visual Studio 2013和libpng

Visual Studio 2013和BitBucket

Visual 2015编译DLL

Visual Studio Express 2013和Visual Studio 2013之间的区别