切换回packages.config

dot*_*NET 16 nuget packages.config visual-studio-2017

是否有可能切换回packages.config方案?PackageReference当我创建项目时,我转向计划,但由于某些原因,现在需要转向旧的方式.

我已经尝试过Package Manager Console命令,例如restore with UpdateReinstalloptions.它们不再生成packages.config.我也转向Tools > Options > NuGet Package Managerpackages.config.不好.

Mar*_*ich 26

你需要:

  1. 将"空" packages.config文件添加到项目中(即,示例中的 xml,但没有单独的<package>元素)
  2. 卸载项目或关闭vs并csproj在文本编辑器中打开文件.
  3. PackageReference项目文件中删除所有元素.
  4. 确保<RestoreProjectStyle>未在项目文件中设置.
  5. 在VS中重新打开项目.

  • 该解决方案似乎不适用于 .net 标准项目,例如 `&lt;Project Sdk="Microsoft.NET.Sdk"&gt;` 项目。 (2认同)
  • 是的,SDK项目只能使用“ PackageReference”。 (2认同)
  • 在重新打开之前,我必须“清除 NuGet 缓存”:工具菜单 -&gt; _Nuget 包管理器_ -&gt; _包管理器设置_ -&gt; _清除所有 NuGet 缓存_ (2认同)

Mir*_*kus 6

我缺少一个步骤:

4.5。确保将Tools>Options>NuGet Package Manager>General>Default package management format其设置为Packages.config


Ian*_*van 5

想再补充一件事。我尝试了上述所有步骤,Visual Studio 一直尝试使用全局包位置,而不是 Nuget.config 中的存储库路径。最后发现我的项目的 obj 目录中有一个package-lock.json文件,其中存储了全局包目录。由于某种原因,Visual Studio 中的 Clean 操作没有删除该文件,所以我最终做了一个

git clean -x -d -f
Run Code Online (Sandbox Code Playgroud)

在我的存储库的根目录下。这会删除所有未跟踪的文件和目录,并忽略 .gitignore 文件的模式。这有点过分了,我本可以尝试用手找到它们,但它完成了工作。现在,Nuget 恢复可以正确使用 Nuget.Config 文件中指定的repositoryPath 设置。