該問題類似於描述的here。如何更新未通過NuGet作爲PackageReference直接引用的依賴關係?
當使用「遺產」式.csproj
項目文件,我們有一個單獨的packages.config
文件,其中所有依賴上市,其中包括傳遞的。當一個用戶安裝具有依賴關係的包時,這將啓用一個用例,然後決定可以手動更新哪些傳遞依賴關係。因此,好處是:
- 依賴易於識別由於平面列表
- 細粒度的控制存在過的所有依賴版本
例如,從的NuGet安裝Autofac.WebApi2.Owin
後,我們有像this的圖片:
清晰可見的傳遞依賴關係可以非常容易地手動更新。
當使用新的SDK式.csproj
項目的NuGet引用添加爲<PackageReference/>
到項目文件本身和傳遞依賴由MSBuild的默默引用:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net462</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Autofac.WebApi2.Owin" Version="4.0.0" />
</ItemGroup>
</Project>
因此,更新傳遞依賴,一個人必須到
- 識別它們(例如,通過
obj/project.assets.json
) - 明確地添加他們的所有項目
- 執行更新
這有每次更新後以及在明知是幾乎不可能的每一個項目(!)傳遞依賴要做。
可能的解決方法:
- 添加傳遞依賴的項目自動
- 顯示傳遞依賴的更新中的NuGet GUI
不幸的是,沒有這樣的功能的文檔中被發現。
那麼,有沒有一種簡單的方法來從兩個世界中獲得最好的?
我已經用更多的信息更新了答案,你可以檢查它是否對你有幫助。那麼這個問題呢?您能否讓我知道關於這個問題的最新信息? –
@ Leo-MSFT謝謝你的回答,它是有效的,但不幸的是沒有完全達到目標。爲了更新依賴關係,我仍然需要手動完成整個樹。所以,沒有一鍵更新的平板清單。 –