我们的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)。正确??
任何帮助表示赞赏...
答案 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。