解决方案编译正常,使用CLI执行dotnet publish时遇MSB4062错误
解决dotnet publish时MSB4062加载任务失败问题
错误信息
C:..\sdk\6.0.401\Microsoft.Common.CurrentVersion.targets(4099,5): error MSB4062: 无法从程序集msbuild.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a加载"Microsoft.Build.Tasks.RequiresFramework35SP1Assembly"任务。请确认声明正确,程序集及其所有依赖项可用,且该任务包含实现Microsoft.Build.Framework.ITask的公共类。
相关目标文件代码
<RequiresFramework35SP1Assembly ReferencedAssemblies="@(Reference)" ErrorReportUrl="$(_DeploymentFormattedErrorReportUrl)" TargetFrameworkVersion="$(TargetFrameworkVersion)" CreateDesktopShortcut="$(CreateDesktopShortcut)" SigningManifests="$(SignManifests)" Assemblies="@(_DeploymentManifestDependencies)" <Output TaskParameter="RequiresMinimumFramework35SP1" PropertyName="_DeploymentRequiresMinimumFramework35SP1" /> </RequiresFramework35SP1Assembly>
解决方案
- 安装.NET Framework 3.5 SP1:该任务依赖.NET Framework 3.5 SP1组件,可通过控制面板“程序和功能”启用Windows功能中的.NET Framework 3.5,或从微软官网下载安装包完成部署。
- 修复/重装.NET SDK:卸载当前的.NET 6.0.401 SDK,前往微软官网下载对应版本的最新安装包重新安装,修复可能损坏的SDK文件。
- 禁用ClickOnce相关任务:若项目无需ClickOnce部署,在项目文件(.csproj/.vbproj)中添加以下配置,跳过该任务执行:
<PropertyGroup> <GenerateManifests>false</GenerateManifests> <RequiresFramework35SP1Assembly>false</RequiresFramework35SP1Assembly> </PropertyGroup> - 清理项目缓存:删除项目根目录下的
bin和obj文件夹,依次执行dotnet restore和dotnet publish命令,排除缓存文件的干扰。
内容的提问来源于stack exchange,提问作者Krishna
相关产品推荐
相关产品推荐

