C 引用不同版本dll

2021-09-02 05:29:03 字數 1190 閱讀 3375

同一解決方案中,不同工程可能需要引用同一dll的不同版本(非必須,不推薦);以下是解決方案。

基本可以參看這裡:

引用不同版本dll

同乙個解決方案或有依賴關係的兩個專案引用同名但不同版本的dll

需要額外補充的是:

這裡的相對路徑,是指程式輸出目錄($(outdir))的相對路徑。

>

name

="litedb"

publickeytoken

="4ee40123013c9f27"

culture

="neutral"

/>

version

="2.0.2.0"

href

="litedb.2.0.2.0\litedb.dll"

/>

version

="4.0.0.0"

href

="litedb.4.0.0.0\litedb.dll"

/>

dependentassembly

>

一般輸出目錄下的內容為自動生成,位於bin目錄下,是不會納入git管理的,所以,需要在程式目錄中用乙個資料夾管理dll檔案,並納入git倉庫。

再在啟動程式的預先生成事件中,利用xcopy指令將dll檔案拷貝到輸出目錄對於位置。如:

xcopy /e /y $(solutiondir)

_externals\refs\litedb.2.0.2.0\*.dll $(outdir)

litedb.2.0.2.0\

xcopy /e /y $(solutiondir)

_externals\refs\litedb.4.0.0.0\*.dll $(outdir)

litedb.4.0.0.0\

這樣,不僅可以將 dll 檔案納入git管理,團隊中其它成員拉取你提交的**後,也不會出現缺少dll不能執行的情況(因為使用了xcopy將dll拷貝到輸出目錄)。

為了避免某些詭異的問題,建議關閉dll引用的 複製到本地 屬性。

通常,之所以會使用兩個版本的 dll ,是因為相容性問題,需要讀取舊有資料等。則舊版本的引用不能被公升級,如何做?

阻止某個 nuget 包意外公升級 - walterlv

end

引用不同版本dll

引用不同版本dll 乙個專案引用不同版本的同一dll,會引發以下報錯 未能載入檔案或程式集 version x.x.x.x,culture neutral,publickeytoken 或它的某乙個依賴項。系統找不到指定的檔案 這裡來解決專案中同一dll的多版本問題。解決方式 不同場景有不同的解決方...

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,...