2012-08-14 71 views
3

我在使用bindingRedirect將TFS程序集從版本10重定向到版本11,其中某些客戶機版本爲11而不是版本10。用TFS v10 DLL編譯。當新版本不存在時使用<bindingRedirect>新版本程序集

<dependentAssembly> 
    <assemblyIdentity name="Microsoft.TeamFoundation.Common" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-10.65535.65535.65535" newVersion="11.0.0.0" /> 
</dependentAssembly> 

的問題是,重定向工作正常,如果客戶有TFS版本11,而不是TFS版本10.如果客戶有TFS V10,而不是TFS V11,那麼他們得到一個運行時錯誤:

Could not load file or assembly, :microsoft.TeamFoundation.Common, Version=11.0.0.0, ... etc.

如果版本11不可用,應用程序不應該使用v10的DLL嗎?

回答

0

Shouldn't the application fallback to use v10 of the dll's if version 11 are not available???

不,因爲您在配置文件中指示了綁定重定向。

+2

我同意!那麼,我怎樣才能做到這一點,使其向後兼容。使用版本11,如果它在那裏。如果不是,請使用版本10.對我來說,這看起來像一個簡單的概念,但我還沒有找到有關如何實現這一目標的任何文檔。 – user1060500 2012-08-14 18:09:53

+0

您是否考慮將dll滑入您的包中,然後知道該電腦的版本。或者你可以回到你的DLL地獄.... – Aron 2014-07-07 18:40:06

相關問題