簡體   English   中英

自動化 .net 框架包安裝:解決包對其他包的依賴

[英]Automating .net framework package installation: resolving package dependency on other packages

長話短說:我正在嘗試通過 VS2019 包管理器控制台在解決方案中自動化包 .net 框架 nuget 更新,但我無法獲得對其他包的包依賴(盡管我知道數據可用,因為您可以在用戶界面)。

說來話長長:我想對.NET框架自動化的NuGet安裝,我選擇使用Visual Studio中的包管理器控制台(如果有我會喜歡聽到關於它的最佳選擇)。 我試圖解決的問題是:問題輸入:包 A :版本 1,依賴包 B 版本 > 1。版本 2 依賴包B版本 > 2。包 B :版本 1。版本 2 有一個打破變化。 包 C :版本 1,依賴包 B 版本 > 1。

我試圖解決的問題:我有同一個項目引用的這 3 個包。 我想將包 A 升級到版本 2。它的依賴項是包 B 版本 > 2。運行包 A 更新到版本 2(通過包管理器 UI 或控制台)會將包 B 更新到版本 2。砰! - 僅在運行時,包 C 將檢測到它缺少 B 版本 1 所需的方法!

我正在嘗試做什么- 編寫安裝過程的腳本,提示用戶輸入這些類型的依賴項。

我的問題- 為此,我想獲得一個包依賴項,但我找不到使用包管理器控制台的方法。

感謝一些幫助:)

為此,我想獲得一個包依賴項,但我找不到使用包管理器控制台執行此操作的方法。

我們不能用的NuGet管理控制台來獲取包dependencies.In除了UI觀看NuGet包的依賴關系,我們可以得到的csproj文件的依賴關系中的NuGet項目A.這是A.csproj文件中的相關內容:

<ItemGroup>
        <PackageReference Include="Antlr">
          <Version>3.5.0.2</Version>
        </PackageReference>
        <PackageReference Include="Microsoft.Extensions.Logging">
          <Version>3.0.0</Version>
        </PackageReference>
</ItemGroup>

另一個是您可以通過命令nuget spec創建的nuspec文件查看包依賴nuget spec如果您使用 nuspec 文件強制執行依賴項),這是您在打包項目之前使用的文檔。

編寫安裝過程的腳本,提示用戶輸入這些類型的依賴項。

注意:針對你的情況,不能在同一個項目中使用兩個版本的nuget包,會造成版本沖突。

建議

  1. 不知道為什么你升級B的時候把C需要的方法刪掉了。相應的方法。 所以你可以在包B版本二中恢復C包需要的方法。

  2. 如果你對包B version2進行了較大的改動,並且恢復方法的步驟有點復雜,建議你可以專門為C包制作一個包B的副本。 只需重命名 Package B version 1 並由 Package C 引用,以將其與 B 包的第二個版本區分開來

希望能幫到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM