簡體   English   中英

在.NET Standard項目中使用Package References后,如何恢復在packages.config中引用Nuget包?

[英]How can I revert to referencing Nuget packages in packages.config after using Package References in a .NET Standard project?

背景

我有幾個C#代碼庫,我最近轉換為目標.NET Standard 1.4,用於Xamarin Forms項目以及許多遺留的.NET Framework 4.6.1項目。

我最初使用Project Files樣式中的Package Reference將Nuget包添加到.NET Standard類庫

在了解了傳統.NET Framework項目中未解析.NET Standard項目中的傳遞包引用此錯誤之后,我嘗試了將<RestoreProjectStyle>PackageReference</RestoreProjectStyle>到舊項目的csproj中的解決方法。 遺留項目仍然沒有解決傳遞性引用 - 也就是說,解決方法不起作用。

所以,我想恢復我的.NET Standard項目中的packages.config文件中引用Nuget包的舊樣式。

我遵循的步驟:

  • 卸載.NET Standard項目中的所有Nuget軟件包,但NETStandard.Library除外,無法卸載
    • Nuget的我的VS默認設置是將解決方案中的第一個包添加到packages.config中
  • Manage Nuget Packages工具窗口重新安裝Nuget包
    • 此包作為PackageReference放在csproj中,而不是在packages.config文件中。

有誰知道我如何強制我的.NET Standard 1.4項目中的新Nuget包列在packages.config而不是Package References中?

除了從項目文件中刪除PackageReferences之外,我還必須從$ProjectDir\\obj目錄中刪除以下文件:

  • Myproject.csproj.nuget.cache
  • Myproject.csproj.nuget.g.props
  • Myproject.csproj.nuget.g.targets
  • project.assets.json

如何回滾到packages.config

  1. 關閉遷移的項目。

  2. 將項目文件和packages.config從備份(通常為\\ MigrationBackup \\\\)復制到項目文件夾。 刪除項目根目錄中存在的obj文件夾。

  3. 打開項目。

  4. 使用工具> NuGet包管理器>包管理器控制台菜單命令打開包管理器控制台。

  5. 在控制台中運行以下命令:

    update-package -reinstall

來源: https//docs.microsoft.com/en-us/nuget/reference/migrate-packages-config-to-package-reference#how-to-roll-back-to-packagesconfig

  1. 刪除項目文件中的所有PackageReference。
  2. 刪除$ ProjectDir \\ obj中的所有緩存。
  3. 將一個空的packages.config文件(帶有根標簽)添加回項目。
  4. 重建項目。 Visual Studio然后會提示你缺少什么。
  5. 然后使用nuget manager添加您選擇的版本的包。
  6. 重復步驟4和5,VS會將您的引用逐個添加回packages.config文件。

如果您還不需要刪除此屬性: <RestoreProjectStyle>PackageReference</RestoreProjectStyle>

然后刪除項目中的任何PackageReferences。 然后,當您添加nuget包引用時,它們應該進入package.config文件。

暫無
暫無

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

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