升级VS 2019至16.10.0版本后执行MSBuild命令报错MSB4057
问题根因
VS 2019升级到16.10.0版本后,MSBuild调整了解决方案级别的目标解析规则,旧版本中直接使用项目名作为构建目标的兼容写法被移除,因此会触发error MSB4057: the target "Project1" does not exist in the project报错。
解决方法
- 调整构建命令的目标参数,在每个项目名后追加
:Build后缀,明确指定调用项目的默认生成目标,修改后的完整命令如下:
msbuild.exe MySolution.sln /t:Project1:Build;Project2:Build;Project3:Build /p:Configuration=Release /p:DebugType=None /p:OutputPath="C:\Users\myuser\Desktop\Build"
- 如果项目名包含点、空格、短横线等特殊字符,需要先将特殊字符替换为下划线后再拼接
:Build,例如项目名为My.Project 1,对应目标写法为My_Project_1:Build。 - 若修改后仍存在报错,可执行命令
msbuild.exe MySolution.sln /pp:full_targets.proj导出解决方案的完整预解析目标清单,在生成的full_targets.proj文件中搜索对应项目,确认正确的目标命名。
内容的提问来源于stack exchange,提问作者jcs
相关产品推荐
相关产品推荐

