2010-02-04 62 views
4

我有一個.NET項目引用了一個名爲ABCPDF的DLL。編寫應用程序時使用的版本號是7.0.2.3,應用程序已部署到登臺服務器上。我的.NET應用程序中引用的版本號困惑

臨時服務器上的軟件的版本是7.0.2.8和應用程序是打破說,它無法找到版本7.0.2.3

當然,它應該使用7.0.2.8版本的DLL,而不是要求我在我的開發機器上使用7.0.2.8重新編譯?如果我在6個月後在實時服務器上更新ABCPDF的版本,它會在沒有我知道的情況下使用以前的版本破壞每個應用程序。

我在這裏得到錯誤的結束了嗎?

回答

3

您可以考慮使用程序集綁定重定向,請參閱下面的代碼:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="Your.Assembly" publicKeyToken="your token here"/> 
      <bindingRedirect oldVersion="7.0.2.3" newVersion="7.0.2.8"/> 
     </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

只是把這些代碼片段在您的app.config文件

0

右鍵單擊參考並單擊屬性。

在參考的屬性中,將「特定版本」設置爲false。

雖然這可能會導致問題,如果ABCPDF打破向後兼容性,如果他們不這會解決您的問題。

編輯:不適用如果您使用簽署的程序集,請參閱其他答案。沒有意識到ABCPDF簽署了。

+0

這是設置爲true默認?看起來瘋狂的是,如果你在運行它的服務器上進行軟件更新,默認功能將是保證你的應用程序中斷。 – 2010-02-04 15:45:04

+1

-1:「特定版本」標誌隻影響編譯,不影響運行時參考分辨率。您需要使用綁定重定向或相關技術來允許較新版本的強名稱程序集取代您編譯的版本。有關完整信息,請參閱MSDN文章「重定向彙編Verisons」(http://msdn.microsoft.com/zh-cn/library/7wd6ex19.aspx)。 – bdukes 2010-02-04 16:10:59

+0

使用特定的版本提示不起作用。 @ bdukes是唯一的方法嗎?看起來非常生氣,你需要更新服務器上的每個應用程序來支持新版本! – 2010-02-04 16:25:27

相關問題