VS2019-无法将msbuild识别为内部或外部命令

时间:2019-10-04 14:38:36

标签: visual-studio msbuild

我正在使用VS2019社区,并且设置了预构建事件:

msbuild "$(ProjectPath)" /t:Clean

我遇到错误:

  'MSBuild' is not recognized as an internal or external command,
  operable program or batch file

这怎么可能?该命令不是应该内置到Visual Studio中吗?

我已经检查过this并尝试设置路径环境,但这无济于事。

在VS2019中,此命令是否还有其他人遇到相同的问题?

2 个答案:

答案 0 :(得分:1)

在我的机器上有效的步骤:

  1. 请参见this,首先我们需要确保MSBuild可以识别cmd.exe

  2. 如果cmd.exe可以识别该命令,但是VS不能识别该事件,则重新启动PC可以帮助解决此问题。

    (有些奇怪的是,对于我的VS,直到计算机重新启动之前仍然无法识别它)

  3. 对于VS2019,正确的msbuild路径为C:\Program Files (x86)\Microsoft Visual Studio\2019\xxx\MSBuild\Current\Bin

这是另一个解决方法:

除了将msbuild.exe的路径添加到Environment Path中并在pre-build事件中调用它之外,您还可以考虑使用MSBuild Task

将下面的脚本添加到xx.csproj中:(适用于.net框架...)

  <Target Name="MyCleanBeforeBuild" BeforeTargets="BeforeBuild">
    <MSBuild Projects="$(ProjectPath)" Targets="clean"/>
    <!--<Message Text="Custom Clean" Importance="high"/>-->
  </Target>

答案 1 :(得分:1)

随着VS2019的最新更新-版本16.3.4-该错误不再存在。