无法使用 dotnet add package 安装软件包

12

我是一个.NET新手,正在使用VS Code跟随一门关于Angular和.NET Core的在线课程。该课程要求安装AutoMapper.Extensions.Microsoft.DependencyInjection包,但我在尝试安装任何包时都遇到以下错误:

  • 无法解决版本为'.NETCoreApp,Version=v2.2'的<package_name>

  • <package_name>包与项目中的所有框架不兼容<csproj_path>

我使用以下命令来安装该包:

dotnet add package AutoMapper.Extensions.Microsoft.DependencyInjection

我尝试过的:

  1. 手动在 .csproj 文件中添加 PackageReference,然后使用 dotnet restore - 结果仍旧是相同的错误 (NU1100)
  2. 使用 dotnet nuget locals all --clear 清除 NuGet 包缓存 - 结果仍旧是相同的错误

在课程开始时,我尝试安装 Microsoft.EntityFrameworkCore.Sqlite 包时是可以工作的,但现在由于某种原因,我无法安装任何包。

请注意,我无法使用 NuGet 扩展,因为它在公司代理后面不起作用。

任何帮助都将不胜感激 :)

1个回答

38

我最终通过删除在C:\Users\<user>\AppData\Roaming\NuGet文件夹中的NuGet.Config文件,并运行dotnet restore解决了问题。

运行dotnet restore会在该文件夹中创建一个新的配置文件,我发现它的packageSources值与旧文件不同。

旧文件的https://www.nuget.org/api/v2/,而新文件是https://api.nuget.org/v3/index.json

我完全忘记自己已安装VS 2010(带有nuget),这就是旧配置文件的原因,我也没有意识到来自dotnet-cli的nuget也在使用相同的旧配置。


这也是修复在VSCode中构建失败的项目的方法。 - user692942
这还解决了“error: the local source ... doesn't exist”的问题,非常感谢。没有您的答案,我可能会太害怕删除整个.nuget目录,而这当然解决了整个问题。 - Toucanite
有人知道Linux中等效的路径是什么吗?C:\Users\[Environment]::UserName\AppData\Roaming\NuGet - rokejulianlockhart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接