具有TFS API dll的SpecificVersion = False

时间:2012-08-03 18:22:55

标签: c# tfs-sdk

我们的Web应用程序大量使用TFS API。我们使用TFS 2010 API dll开发并编译它。我们还设置了SpecificVersion = False。

问题是,当我们部署到具有TFS 2012而不是TFS 2010的服务器时,我们会收到以下错误:

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

有什么方法可以迁移这个? TFS 2012已安装到GAC中,我们称“SpecificVersion = False”应该告诉应用程序使用dll的2012(版本11)而不是2010(版本10)。正确??

任何帮助表示赞赏...

1 个答案:

答案 0 :(得分:2)

如果程序集为does not work,则为特定版本strong name signed。微软几乎肯定会签名他们的大会。

您的网站必须使用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更新为正确的值。


或者,您可以针对VFS版本的TFS SDK重新编译网站以避免绑定重定向,但是它只适用于TFS SDK的v11。