使用MSBuild通过发布配置文件生成部署包时遇MSB4044错误
遇到这个错误别慌!这大多是发布配置或者MSBuild环境不匹配导致的,给你几个实用的解决方向:
检查发布配置文件(.pubxml)的路径设置
打开你的MyProfile.pubxml文件,仔细核对所有和路径相关的配置项,比如<PublishUrl>、<WPPAllFilesInSingleFolder>这类节点。确保它们都有有效的非空值——比如文件系统发布的话,PublishUrl应该是类似C:\Deploy\MyProject的具体路径,别留空或者写无效路径。匹配MSBuild与Visual Studio版本
你当前调用的是VS2015(v14.0)的目标文件,如果项目是更高版本VS创建的,或者MSBuild版本不对应,就容易出问题。建议直接用对应VS版本的「开发者命令提示符」执行命令,或者指定正确的MSBuild路径——比如VS2017的MSBuild路径大概是C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\msbuild.exe。补充VisualStudioVersion参数
有时候命令行没指定VS版本,MSBuild会找不到正确的目标文件。试试在命令里加上版本参数:msbuild.exe MyProject.csproj /p:DeployOnBuild=true;PublishProfile=MyProfile;VisualStudioVersion=14.0先手动发布验证配置
打开Visual Studio,用你的MyProfile配置手动发布一次。如果手动发布成功,说明命令行参数可能有遗漏,或者pubxml文件在手动发布后有更新,这时再重新执行命令行试试。另外也可以先清理项目:msbuild.exe MyProject.csproj /t:Clean清理完再执行发布命令。
排查自定义配置或任务
如果你的pubxml里有自定义目标或者导入了第三方任务,检查这些自定义内容是否正确传递了Path参数,有没有遗漏必填项的情况。
内容的提问来源于stack exchange,提问作者sashoalm

