我将NuGet.exe从3.4升级到了4.9,因为3.4无法理解如何为.NET Core还原包。
.csproj
项目格式时,我发现了这个问题。 - StuartLCnuget.exe update -self
只有在更新到最新的nuget并执行dotnet Restore之后,这些错误才消失了。 - James S选择 工具 > NuGet 包管理器 > 程序包管理器控制台
然后运行:
dotnet restore <project or solution name>
以上方法都对我没有用。但是简单删除所有的'bin'和'obj'文件夹就可以解决问题。
PackageReference
而不是packages.config
的项目上执行restore
时,会出现此问题,这主要影响Net Core和Netstandard新样式项目。如果您使用自动化、CLI工具,则会看到此问题,但如果您打开Visual Studio并进行构建,则会解决此问题。restore
。在某些情况下,在构建之前使用dotnet restore
。如果您使用MsBuild构建,只需将/t:Restore
开关添加到命令中即可。当我在Azure DevOps中将构建管道的“Visual Studio Build”任务设置为仅构建解决方案中的某个项目而非整个解决方案时,我在这个错误上浪费了几个小时。
这样做意味着DevOps可能不会构建(或可能是其中一些,我不确定)由您定位进行构建的项目引用的任何项目,因此这些项目将无法生成其project.json.asset文件,从而导致该问题。
对我来说,解决方案是从使用VS Build任务转换为MSBuild任务。 对于单个项目,使用MSBuild任务可以正确地构建项目所引用的所有项目,并消除此错误。
虽然回答有点晚,但似乎这会增加价值。从错误信息来看,它似乎发生在CI/CD流水线中。
只需运行"dotnet build"即可足够。
dotnet build
dotnet build默认运行"restore"。
我的CLI/C++中没有任何NuGet。VS2022构建正常。但是,MSBuild无法工作,给我错误NETSDK1004:未找到资产文件... obj\project.assets.json'。运行NuGet包还原以生成此文件。
解决我的问题的方法是从vcxproj文件中删除以下内容。
<EnableManagedPackageReferenceSupport>true</EnableManagedPackageReferenceSupport>
我想把 true 改成 false 可能会起作用。我删除了这行代码,现在 MSBuild 工作正常。