SpecificVersion = false使用TFS API的DLL(SpecificVersi

2019-07-30 19:18发布

我们的Web应用程序,使大量使用TFS的API。 我们开发和与TFS 2010 API的DLL编译它。 我们还设置SpecificVersion =假。

问题是,当我们部署到具有TFS 2012和2010不是TFS服务器,我们得到以下错误:

无法加载文件或程序集“Microsoft.TeamFoundation.Client,版本= 10.0.0.0,......等等。 该系统找不到指定的文件。

任何方式migitate呢? TFS 2012安装到GAC和我们说的事实“SpecificVersion =假”应该告诉该应用使用的DLL的,而不是2010(10版),2012(11版)。 正确??

任何帮助表示赞赏...

Answer 1:

具体的版本无法正常工作 ,如果组件强名称签名 。 微软几乎可以肯定强的名字签上自己组装。

您的网站将不得不做出使用的bindingRedirect到所有版本,从V10重定向到V11。 例如:

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <dependentAssembly>
            <assemblyIdentity name="Microsoft.TeamFoundation.Client"
                              publicKeyToken="xxxxxxxxxxxxx"
                              culture="neutral" />
            <bindingRedirect oldVersion="10.0.0.0"
                             newVersion="11.0.0.0"/>
         </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

确保更新publicKeyToken为正确的值。


或者,你可以重新编译反对TFS SDK的V11版本,以避免绑定重定向的网站,但这时它只会与TFS SDK的V11工作。



文章来源: SpecificVersion=False with TFS API dll's
标签: c# tfs-sdk