2011-12-21 91 views
4

當給定的DLL引用第二個DLL的特定版本時,它就起作用。但是,如果第二個的版本比參考的版本更新,我的圖書館項目,該項目使用了兩個庫,產生一個警告:如何使DLL引用其他版本的第二個DLL?

警告不同版本的同一依賴程序集之間1個發現衝突。

而且FxCop的規定:

警告15 CA0060:將間接引用的程序集 'NationalInstruments.Common的,版本= 9.0.40.362,文化=中性公鑰= dc6ad606294fc298' 找不到。這個程序集不需要進行分析,但分析結果可能不完整。此組件被引用:SimpleReadWrite

直到這些警告解決,我不能在其他項目中引用我的庫。我試圖用

  • NationalInstruments.NI4882.dll

在我SimpleReadWrite項目,但NationalInstruments.NI4882引用

  • NationalInstruments.Common.dll v9.0.40.362

我只能找到一個較新的版本(9.1.40.159)。如何解決這個問題呢?

+0

難道我理解正確的話 - 你想從一個項目一次引用同一個DLL的兩個版本?如何處理名稱衝突? – 2011-12-21 15:58:40

+0

@Doc不,我不是。我想使用單個版本,問題是我沒有所需的版本,但是一個更新的版本。有什麼解決方法嗎? – 2011-12-21 16:00:33

+0

對不起,我不明白。您有一個帶有源代碼的「SimpleReadWrite」項目,因此您可以更改所需的任何引用,並使用NationalInstruments.Common.dll v9.1.40.159進行編譯 - 因爲這是您手頭唯一的版本。問題出現在哪裏?還是你有「SimpleReadWrite」只作爲一個DLL,沒有源代碼? – 2011-12-21 16:08:19

回答

3

這裏

http://digital.ni.com/public.nsf/allkb/46DE00265283A71586256FC000797682

是如何來修復您的安裝,這應該屬於版本一起重新安裝兩個DLL希望的說明。

如果你真的想嘗試這些DLL在一起(這很可能將無法正常工作)混合,閱讀前SO後,它解釋了必要步驟:

Upgrade a reference dll in a C# project without recompiling the project

+0

我無法獲得這些解決方案的工作。 – 2011-12-21 17:52:04

+0

我創建了第三個解決方案。我'ildasm' NationalInstruments.Common.dll在它出現的每一個地方都改變了版本,然後我'ilasm'再次。但是我也無法讓它工作。 – 2011-12-21 18:10:52

+0

@XMLforDummies:您是否嘗試聯繫供應商?你的時間將會更好地投入到這項任務中,而不是試圖混合可能無法混合的東西。 – 2011-12-22 06:59:54