VS2017发布项目报错:project.assets.json缺少.NETFramework v4.5.2/win7-x86目标
解决发布时project.assets.json目标不匹配的问题
我之前在VS2017搭配AspNetCore 1.1.2时也碰到过一模一样的问题,给你几个按优先级排序的解决步骤,按顺序试基本能搞定:
检查并修正项目文件(.csproj)配置
右键项目→编辑.csproj文件,确认以下两个节点的配置:- 确保
TargetFramework(单个目标框架)或TargetFrameworks(多目标)里包含net452,比如:
(如果是多目标框架项目,格式为<TargetFramework>net452</TargetFramework><TargetFrameworks>net452;netcoreapp1.1</TargetFrameworks>) - 添加或确认
RuntimeIdentifiers节点包含win7-x86:
若有多个运行时需求,用分号分隔即可,比如<RuntimeIdentifiers>win7-x86</RuntimeIdentifiers>win7-x86;win7-x64
- 确保
强制重新还原NuGet包
有时候NuGet缓存或不完整的还原会导致这个问题,试试这些操作:- 在VS顶部菜单栏→工具→NuGet包管理器→包管理器控制台,运行:
Update-Package -reinstall - 或者用dotnet CLI(已配置环境变量的话),在项目根目录打开命令行运行:
dotnet restore --force - 也可以右键解决方案→选择“还原NuGet包”,之后清理解决方案(生成→清理解决方案),再重新生成整个解决方案。
- 在VS顶部菜单栏→工具→NuGet包管理器→包管理器控制台,运行:
验证发布配置的运行时设置
打开发布向导,在“设置”标签页里,确认“目标运行时”选择的是win7-x86,和项目文件里的RuntimeIdentifiers完全匹配。如果之前选了其他运行时,改成对应的值再重新发布。手动清理缓存文件
如果上面的步骤都没用,试试手动删除项目目录下的obj和bin文件夹,然后重新执行还原、生成、发布操作——有时候旧的缓存文件会干扰新的构建流程。
内容的提问来源于stack exchange,提问作者Paolo B
相关产品推荐
相关产品推荐

