同一解決方案中,不同工程可能需要引用同一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,...