VS2015升级VS2017插件遇CS7069错误:TeamFoundationServer引用未找到
这个问题我之前帮团队排查过,虽然你没直接用到TeamFoundationServer类型,但GetWorkItem的这个重载在底层确实依赖了它,大概率是NuGet包引用或VS配置的问题。试试下面这几个方案:
检查并修复程序集绑定重定向
很多时候NuGet包更新后,项目配置文件里的绑定重定向还是旧版本,导致编译/运行时找不到正确的程序集。打开项目的app.config(插件项目通常是这个),搜索Microsoft.TeamFoundation.Client相关的条目,如果版本不对或者没有,手动添加适配15.112.1版本的重定向:<dependentAssembly> <assemblyIdentity name="Microsoft.TeamFoundation.Client" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-15.0.0.0" newVersion="15.112.1.0" /> </dependentAssembly>彻底重装相关NuGet包
有时候NuGet包更新会有残留,导致依赖不完整。先卸载Microsoft.TeamFoundationServer.ExtendedClient以及所有相关的TFS依赖包(比如Microsoft.TeamFoundation.WorkItemTracking.Client、Microsoft.TeamFoundation.Common),然后删除项目的bin和obj文件夹,清理解决方案,再重新安装最新版的Microsoft.TeamFoundationServer.ExtendedClient。确认项目目标框架与VS兼容性
VS2017对TFS相关包的目标框架要求比VS2015高,确保你的项目目标框架是.NET Framework 4.6.1或更高版本。右键项目→属性→应用程序,检查目标框架设置,同时确认是否启用了Roslyn编译器(这是VS2017默认的,但有时候旧项目升级后可能没开)。切换到其他GetWorkItem重载
既然这个重载出问题,看看能不能换个参数形式的重载绕开。比如有些重载支持直接传入TFS服务器的Uri,而不是TfsTeamProjectCollection对象,示例代码:Uri tfsServerUri = new Uri("http://your-tfs-instance:8080/tfs/YourCollection"); IWorkItemDocument wiDoc = doc.GetWorkItem(tfsServerUri, id, this);检查VS2017的TFS组件是否安装
VS2017默认可能没装全TFS相关工具,打开VS安装器→修改→单个组件,找到“Team Foundation Server客户端工具”并勾选安装,重启VS后再编译项目。
内容的提问来源于stack exchange,提问作者Daniel W.

