我经常得到"' project.assets.json'找不到"合并时的错误,nuget包更新等等。
它已成为一种日常烦恼......不像nuget问题一样令人恼火,但它已经到了那里。
该文件的来源是什么,它有什么用途?什么消耗它?
这是一个包含更多细节的编辑:
我经常收到此错误:
C:\ Program Files \ dotnet \ sdk \ 2.1.4 \ Sdks \ Microsoft.NET.Sdk \ build \ Microsoft.PackageDependencyResolution.targets(167,5):错误:资产文件' D:\ test \ OBJ \ project.assets.json'没有针对.NETFramework,Version = v4.7 / win7-x64'的目标。确保恢复已经运行,并且您已经包含了' net47'在项目的TargetFrameworks中。您可能还需要包含' win7-x64'在您的项目的RuntimeIdentifiers中。
然后,当我查看项目依赖项时,我看到了:
即使是解决方案中的其他项目似乎也找不到。
Visual Studio真的想确保我拥有NET47,因为如果我只有一次,它会再次添加它:
路径也没有意义:
但没有费心去修理它,VS并不关心我输入的内容..想知道为什么这里还有一个字段。
感觉就像.NET Core的引入一样,所有内容都非常奇怪地与UI不一致,因为它不再与后台运行的东西相匹配。
该项目是两个带有.NET47框架的.NET47库+ 1个.NET核心库。
这个视线:
每天都会发生,因为许多不同的项目都包含了相同的lib,所有项目都以某种方式更新它。
也:
已安装软件包,但它们并未同时找到。
删除软件包并将其添加回来可以暂时解决问题。
可能导致此错误的原因是什么?
答案 0 :(得分:2)
听起来像是一个或多个.csproj
文件的问题。
AFAIK project.assets.json
是dotnet restore
的输出。此文件类似于package-lock.json
中的npm
。您看到的错误表明dotnet restore
无法运行或无法找到目标框架的正确包。
Visual Studio的框架定位UI在大多数情况下跨平台工作时都没用,因此我建议您了解SDK风格的csproj格式并使用单独的文本编辑器进行手动编辑。它比以前版本的msbuild风格的csproj简单。
我还建议阅读https://docs.microsoft.com/en-us/dotnet/standard/frameworks#how-to-specify-target-frameworks,看看你的csproj是否偏离了预期值。
答案 1 :(得分:0)
就我而言,我必须从 myproject.csproj 文件中删除以下行。
<BaseIntermediateOutputPath>mypath\obj\</BaseIntermediateOutputPath>
显然,中间版本的一些文件被复制到该文件夹中,但其他文件仍然放置在默认文件夹中,无论设置如何。删除该行会将所有文件放在默认文件夹中,并且构建不再出现该错误。