2010-02-23 37 views
0

我在我的項目中包括的一個庫使用System.Web.Extensions 3.5.0.0,它與我的Framework 2.0應用程序(它使用(C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025\System.Web.Extensions.dll))衝突。我可以想到3種可能的解決方案:衝突的System.Web.Extensions版本的影響

  1. 忽略警告,不要更改任何內容。我不確定應用程序如何處理這個問題。
  2. 在我的web.config中添加一個程序集綁定元素(見下面)
  3. 明確配置應用程序以使用不同的程序集(我認爲這是可能的,但不知道該怎麼做)。

但是,我不確定每個決定的含義。即使我忽略了警告(解決方案1),該應用程序似乎仍能正常工作,但忽略了我沒有完全理解的警告,因爲這樣的警告顯示出來。

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31BF3856AD364E35" culture="neutral"/> 
      <bindingRedirect oldVersion="0.0.0.0-3.5.0.0" newVersion="3.5.0.0"/> 
     </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

編輯:我不認爲#3將工​​作,因爲我想引用一樣AjaxControlToolKit,它有自己的引用System.Web.Extensions

回答

0

您可以通過在參考的屬性窗口中將「特定版本」設置爲true來配置您的應用程序以使用程序集的特定版本。這阻止了全局參考解析到程序集的最新版本。

如果您不確定您的全局引用以及它們可能解決的問題,可以隨時將必需的.dll複製到應用程序中的本地「Libraries」文件夾中,並直接引用它,而不是使用全局引用。

您可能還會發現this question and answer有用。

+0

當我嘗試時,它沒有任何區別。我懷疑這是因爲我引用了AjaxControlToolkit,它引用了System.Web.Extensions,它沒有引用特定的版本。 – Brian