VS2017 Nuget继续在错误的位置搜索软件包

时间:2018-11-15 00:45:26

标签: visual-studio nuget-package nuget-package-restore packagereference

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

我收到以下错误:

  

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

这发生在多个软件包中。似乎出于某种原因,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一直在那个位置寻找包裹。它应该在项目中的packages文件夹中。

<?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的设置吗?对于解决此问题的任何指导,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

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

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

ls project.assets.json -Recurse | foreach {rm $_}
使用project.assets.json为项目生成

PackageReference,以缓存项目的Nuget依赖图。即使您的项目正在使用(或还原为使用),packages.config

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

其他信息
有关project.assets.json的更多信息,请参见:
https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-build?tabs=netcore2x

相关问题