我在解決方案文件中有20個項目。其中1個項目是所有項目參考的標準庫項目。將綁定重定向添加到每個app.config
大約一年前,我們添加了一個新的nuget包,我們將其稱爲Package A
版本5.0.0.0。它有一堆文件,它們在我們編譯時會轉移到全部,但我們最終會處理它。我們將該包添加到我們的標準庫項目(另一個參考文獻19)。
我是新來的Nuget(所以也許我做錯了什麼),所以我做了一個新的包,作爲Package A
的幫手。我已經設置了一切,以便助手依賴於Package A
版本3.0.0.0到5.0.0.0(所以它適用於其他版本低於我們的版本)。讓我們打電話給這個新套餐Package A helper
我安裝了Package A helper
,一切正常。我去做一個拉請求,並在我們的解決方案的每一個的app.config現在有
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Package.A" publicKeyToken="8FC3CCAD86" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
它將編譯罰款沒有它,但視覺工作室抱怨並給出了一個警告。是什麼賦予了?我的經理現在不讓我合併我的代碼,因爲它在app.config中添加了太多的噪音,並且依賴於套餐A太多。
爲什麼添加一個依賴於Package A
的nuget包,然後必須有這個新的bindingRedirect當我們安裝Package A Helper
之前主要的依賴已經滿足了?
爲什麼它會說0.0.0.0-5.0.0.0當我在NuGet包和package.config指定3.0.0.0-5.0.0.0
更新:
當我建立Package A helper
與引用到Package A
版本5.0.0.0,那麼所有bindingRedirects都不會在每個app.config中自動填充,而是會生成警告。我最初使用3.0.0.0構建它,因爲我認爲最好是用最低的依賴關係來構建它。問題仍然存在,因爲visual studio仍然警告並且建議bindingRedirects被創建。
No way to resolve conflict between "Package A, Version=5.0.0.0, Culture=neutral, PublicKeyToken=83hfhsd33" and "Package A, Version=3.0.0.0, Culture=neutral, PublicKeyToken=83hfhsd33". Choosing "Package A, Version=5.0.0.0, Culture=neutral, PublicKeyToken=83hfhsd33" arbitrarily.
Consider app.config remapping of assembly "Package A, Culture=neutral, PublicKeyToken=83hfhsd33" from Version "3.0.0.0" [] to Version "5.0.0.0" [path to Package A dll] to solve conflict and get rid of warning.
是解決只是改變從3.0.0.0我的NuGet包依賴關係5.0.0.0,只是允許5.0.0.0和我擺脫我allowedVersions="[3,6)"
packages.config?我不想減少nuget包的幫助和向後兼容性,但同時我不需要警告或綁定我的主要解決方案所需的引導。
更新2:所以設置Copy Local
在參考屬性False
實際上解決了我的問題,但我不明白爲什麼。
請問您可以添加關於您所看到的警告的詳細信息嗎? –
@SimonMᶜKenzie他們被添加了。 – LearningJrDev