2013-09-26 57 views
0

我有一個assembly_A依賴NuGet中的* some_framework * v2.1。 然後,我有一些assembly_B取決於assembly_A,但是當我編譯解決方案,它的2.0版 - 的* some_framework *所帶來assembly_B不是2.1。錯誤的程序集版本帶有依賴關係

我的猜測是該版本選擇了v2.0,因爲這是我的GAC版本,但我需要v2.1 ...沒有其他依賴使用* some_framework *。明顯的旁路將使assembly_B取決於* some_framework * v2.1通過NuGet,但這不是很優雅!

有什麼想法?

謝謝

回答

0

您有獨特的解決方案嗎?如果不是,請嘗試使用nuget config file爲您的項目保留相同的包文件夾。

我對發生這樣的想法是:

  • 安裝在您的depedency assembly_A
  • assembly_B(已經有了參考assembly_A),您使用的依賴的代碼安裝(添加上的csproj DLL)
  • assembly_A,你從更新您的NuGet依賴,但assembly_B(的csproj),參考繼續舊版本

web.config文件>運行> assemblyBinding部分版本設置好的你的依賴

的在後一種情況下,轉到目錄你的軟件包,看看它的依賴包含不同的版本。如果有,請刪除舊版本並重新構建您的解決方案以查看項目引用。

+0

感謝您的想法。 其實我認爲我的程序集B最初依賴於GAC的v2.0(這是一個在項目創建時初始依賴AzureStorage v2.0的Azure工作者角色),而我的程序集A具有Nuget依賴於AzureStorage v2.1。我檢查了一切,但是當我編譯工作者角色時,我一直在獲取AzureStorage v2.0 ... – ThomasWeiss

+0

嘗試在解決方案上「啓用軟件包恢復」。也許在構建/發佈更正問題。 –