0
X <= nuget package A <= DLL version 1
X <= nuget package B <= DLL version 2
所以我的項目X引用了兩個第三方nuget軟件包A和B.這兩個軟件包引用相同的DLL但具有不同的版本。現在問題似乎是在構建時,DLLv1被binv文件夾中的DLLv2覆蓋。並且在運行時,A中的代碼抱怨DLLv1未找到。無法加載文件或程序集或其某個依賴項。系統找不到指定的文件
我已經在bin文件夾中添加了一個程序集綁定配置文件來綁定到DLLv2。但是這似乎沒有改變任何東西。
這是一個使用msbuild構建的CSharp項目。
問題:
- 是AssemblyBinding解決這個問題的正確工具嗎?
- 解決此問題的正確方法是什麼?
簡單...不要這樣做。您應該讓解決方案中的所有項目都引用相同版本的軟件包。 –
nuget包是第三方,我無法控制他們使用的DLL版本。 – Lee
除非第三方庫已固定特定版本,否則應該可以在整個消費項目中管理和安裝共享依賴項。您的箱中只能有一個文件名實例。如果這不起作用,則需要將項目拆分爲多個入口點,每個入口點都具有特定版本的公共庫 –