引用不同版本dll

2021-10-09 12:25:11 字數 939 閱讀 7688

引用不同版本dll

乙個專案引用不同版本的同一dll,會引發以下報錯:

未能載入檔案或程式集「***, version=x.x.x.x, culture=neutral, publickeytoken=************」或它的某乙個依賴項。系統找不到指定的檔案

這裡來解決專案中同一dll的多版本問題。

解決方式

不同場景有不同的解決方式,下面說明

場景一 以高版本相容

例如:新舊專案都引用newtonsoft.json,但是不同版本。需要以最高版本相容。

場景二 同一dll兩種版本共存

例如:專案自己引用log4net.dll 版本1.2.13.0 。新增第三方某個dll,第三方依賴log4net.dll版本1.2.9.0,專案中需要兩種版本共存。

這裡還分兩種情況,dll的publickeytoken相同還是不同 (publickeytoken查詢見說明1)

publickeytoken相同,配置方法:

publickeytoken不同,配置方法:

說明

1.publickeytoken獲取方式:使用vs的tools command prompt命令列工具,輸入:sn -t 「path」,例如:

c:\program files (x86)\microsoft visual studio 11.0>sn -t "d:\project\liberary\external\log4net.dll"

microsoft(r) .net framework 強名稱實用工具 版本 4.0.30319.17929

公鑰標記為 b32731d11ce58905

參考文獻

C 引用不同版本dll

同一解決方案中,不同工程可能需要引用同一dll的不同版本 非必須,不推薦 以下是解決方案。基本可以參看這裡 引用不同版本dll 同乙個解決方案或有依賴關係的兩個專案引用同名但不同版本的dll 需要額外補充的是 這裡的相對路徑,是指程式輸出目錄 outdir 的相對路徑。name litedb pub...

maven不同環境引用不同版本的jar包依賴

pom檔案中定義 同義pay provider專案中打包也會根據pom檔案中的定義打包成jar包 根據版本上傳到指定版本的私服中 擴充套件知識 freemarker 2.3.8.jar.sha1是freemarker 2.3.8.jar的校驗檔案 freemarker 2.3.8.pom是管理描述檔...

C 引用DLL版本衝突

手動引用兩個版本的dll錯誤的原因是我 publickeytoken 大小寫的問題 竟然沒校驗 但我想不明白,這樣搞如果依賴一多的話,甚至那個 publickeytoken 都不統一的話,那管理起來不是會特別麻煩嗎?以下是原問題內容 工程中要用到zookeeper,他依賴乙個低版本的log4net,...