C# 引用DLL版本沖突
阿新 • • 發佈:2017-07-08
src 中一 ~~ 嘗試 .html 1.2 title 代碼 fig
C# 引用DLL版本沖突 >> csharp
這個答案描述的挺清楚的:
http://www.goodpm.net/postreply/csharp/1010000008923000/C引用DLL版本沖突.html
已解決,到官網上下載舊key版本,然後再重定向即可。
手動引用兩個版本的DLL錯誤的原因是我 publicKeyToken 大小寫的問題(竟然沒校驗~~)
但我想不明白,這樣搞如果依賴一多的話,甚至那個 publicKeyToken 都不統一的話,那管理起來不是會特別麻煩嗎?
以下是原問題內容:
工程中要用到zookeeper,他依賴一個低版本的log4net,但是我想用高版本的log4net。
百度後發現可以使用 重定向程序集版本 來解決,但是實踐後發現兩個版本的 PublicKeyToken 還不一樣!
這種情況該怎麽辦?只能拉代碼重新生成一個嗎?
再次嘗試手動引用兩個版本的DLL,其中一個用別名。
app.config 中增加 dependentAssembly
<dependentAssembly> <assemblyIdentity name="log4net" publicKeyToken="1b44e1d426115821" culture="neutral" /> ??<codeBase version="1.2.10.0" href="DLL/log4net_1.2.10.dll" /> </dependentAssembly> <dependentAssembly> ??<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" /> ??<codeBase version="2.0.8.0" href="DLL/log4net_2.0.8.0.dll" /> </dependentAssembly>
編譯時候報:
warning MSB3243: 無法解決“log4net, Version=2.0.8.0, Culture=neutral,
PublicKeyToken=669e0ddf0bb1aa2a”與“log4net, Version=1.2.10.0,
Culture=neutral, PublicKeyToken=1b44e1d426115821”之間的沖突。正在隨意選擇“log4net,
Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a”。
啟動報:
C# 引用DLL版本沖突 >> csharp
這個答案描述的挺清楚的:
http://www.goodpm.net/postreply/csharp/1010000008923000/C引用DLL版本沖突.html
C# 引用DLL版本沖突