Visual Studio 2022发布Web应用出现MSB3073错误求助
Visual Studio 2022 发布Web应用MSB3073报错解决方案
报错信息:23>C:\Program Files\Microsoft Visual Studio\2022\Preview\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(5719,5): error MSB3073:
MSB3073报错本质是MSBuild在执行发布阶段的命令行步骤时返回了非0退出码,项目可正常构建、本地运行说明核心业务代码无异常,问题仅出在发布专属的执行流程中,可按以下步骤排查解决:
- 检查发布自定义命令
右键项目选择【属性】,切换到【生成事件】选项卡,点击【发布】标签查看是否配置了发布前/发布后自定义命令。绝大多数该类报错是因为命令使用了相对路径,本地构建路径上下文和发布路径上下文不一致导致执行失败,比如调用了本地独有环境变量、引用了发布环境不存在的工具。不需要的命令可直接删除,需要的命令将所有路径替换为绝对路径,或添加路径存在性校验逻辑即可。 - 清理项目缓存和发布残留文件
关闭Visual Studio,删除项目根目录下的bin、obj文件夹,同时删除发布目标目录的所有残留文件,重启Visual Studio后重新尝试发布。旧的中间缓存文件可能导致发布阶段的文件复制、编译步骤冲突触发该报错。 - 核对发布目标路径权限
若发布到本地文件夹,检查目标文件夹是否为只读状态,当前Windows用户是否拥有该目录的写入、修改权限;若发布到远程站点/IIS,检查站点对应物理路径是否开放了IIS应用池用户、网络服务用户的修改权限。发布阶段需要写入文件到目标路径,权限不足会导致命令执行失败。 - 调整发布编译配置
打开对应发布配置的【设置】页面,展开【文件发布选项】,勾选【发布前删除所有现有文件】。如果是ASP.NET Framework项目,取消勾选【预编译期间允许更新预编译站点】;如果是.NET Core/.NET 5+项目,取消勾选【在发布期间预编译】,之后重新尝试发布。部分预编译逻辑的参数配置错误也会触发该类报错。 - 修复Visual Studio MSBuild组件
打开Visual Studio Installer,点击【修改】,切换到【单个组件】标签,搜索MSBuild,确认所有MSBuild相关组件已安装,缺失则勾选安装后重启Visual Studio。你使用的是预览版Visual Studio 2022,也可以切换到正式版通道规避预览版的组件bug。
内容的提问来源于stack exchange,提问作者Anas Sohail
相关产品推荐
相关产品推荐

