0

我正在尝试在 vs 构建或命令行构建上设置自动 nuget 包恢复。遵循指定的 Microsoft 文章时: https ://docs.microsoft.com/en-us/nuget/consume-packages/package-restore#migrate-to-automatic-package-restore-visual-studio

我无法让 Visual Studio 2019 或以下命令(nuget restore mysolution.sln、msbuild -t:restore、msbuild -restore)从我的每个项目中的 packages.config 文件中读取

我尝试了以下方法:

  • 删除每个项目文件中对 PackageReference 的任何引用

  • 删除每个项目中的 bin 和 obj 文件夹

  • 使用以下内容添加本地 nuget.config:

  • 删除本地包文件夹

  • 删除全局包文件夹

  • 运行以下命令:nuget locals all -clear

  • 更新了 Visual Studio -> 工具 -> 选项 -> NuGet 包管理器并设置“允许 Nuget 下载丢失的包”和“在 Visual 中构建期间自动检查丢失的包”并将默认包管理格式设置为“Packages.config”

  • 重新启动 Visual Studio 几次。

当我为我的解决方案运行 nuget restore 命令时,它会尝试从每个项目文件中的 packagereference 进行恢复,但由于我没有任何内容,因此它什么也不做,但仍会创建相应的 nuget.g.props 和 project.assets.json 文件。我不能在项目文件中使用包引用,因为它不能移植到其他项目。

我需要能够将 packages.config 文件与构建命令之一一起使用。我很困惑为什么这不起作用

4

1 回答 1

1

您必须.vs从解决方案文件夹中删除隐藏文件夹,它仍然恢复旧的 nuget 管理格式PackageReference,并且仍然使用它。

尝试以下步骤:

1)关闭VS,删除.vs隐藏文件夹和每个bin文件obj夹。

2)确保每个packages.config都在项目文件夹中,以便它可以工作。

3)如果您使用自己的 nuget.config,请确保其包源包含所有 nuget 包。或者文件是多余的,你应该删除它,然后在 VS IDE 下添加 nuget 包源

3)重启VS,update-package-reinstallTools --> Nuget Package Manager --> Package Manager Console下运行

4)之后,您可以删除全局nuget文件夹和本地nuget文件夹,然后运行nuget restore xxx.sln检查。


编辑:确保您的项目不是SDK 风格的项目;packages.config 文件不支持 SDK 项目(请参阅)。

于 2021-02-24T03:15:46.213 回答