6

所以我从 nuget packages.config 迁移到 PackageReference,发现存在一些兼容性问题。我将项目恢复到其工作状态(在 PackageReference 之前),现在我的项目没有编译。

我收到以下错误:

严重性代码描述项目文件行抑制状态错误在 C:\Users\user.nuget\packages 中找不到版本 6.2.0 的包 EntityFramework。运行 NuGet 包还原以下载包。数据库管理器

这发生在多个包裹上。似乎 Nuget 出于某种原因正在 user.net\package 目录中搜索包。最初,项目中有一个包含所有包的文件夹。

我通过编辑 NuGet.Config 文件强制全局路径位于项目内的文件夹中。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="repositoryPath" value="C:\Projects\App\App Source\packages\" />
    <add key="globalPackagesFolder" value="C:\Projects\App\App Source\packages\" />
  </config>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </packageSources>
  <packageRestore>
    <add key="enabled" value="True" />
    <add key="automatic" value="True" />
  </packageRestore>
  <bindingRedirects>
    <add key="skip" value="False" />
  </bindingRedirects>
</configuration>

我不知道为什么 Nuget 一直在那个位置寻找包。它应该查看项目中的包文件夹。

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="EntityFramework" version="6.2.0" targetFramework="net46" />
  <package id="EntityFramework6.Npgsql" version="3.1.1" targetFramework="net46" />
  <package id="Npgsql" version="3.2.7" targetFramework="net46" />
  <package id="System.Threading.Tasks.Extensions" version="4.3.0" targetFramework="net46" />
  <package id="Z.EntityFramework.Plus.EF6" version="1.7.17" targetFramework="net46" />
</packages>

未找到 packages.config 中的所有这些包。当我尝试 PackageReference 时,这个问题开始发生。

有没有办法重置 Nuget 的设置?我将不胜感激解决此问题的任何指导。

4

1 回答 1

9

TLDR;这是由于新project.assets.json文件的潜在副本留在您的/obj/文件夹中。这些可以安全地删除。

您可以在根解决方案文件夹中运行此 Powershell(风险自负)作为清除这些文件的快速方法:

ls project.assets.json -Recurse | foreach {rm $_}

project.assets.json为用于PackageReference缓存项目的 Nuget 依赖关系图的项目生成。即使您的项目正在使用(或恢复使用),如果它留在那儿似乎会使 Visual Studio/Nuget 感到困惑packages.config

这也可能发生在 Visual Studio 2019 中,如果您尝试PackageReference然后恢复到packages.config(或者即使您使用一种 Nuget 恢复方法与另一种方法在 Git 分支之间切换)。

更多信息
更多信息在project.assets.json这里:
https ://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-build?tabs=netcore2x

于 2019-05-16T18:04:01.967 回答