Bash `找不到msbuild`命令,但`msbuild.exe`工作正常

Bash `找不到msbuild`命令,但`msbuild.exe`工作正常,bash,msysgit,msys,Bash,Msysgit,Msys,我运行中分发的MSys/Bash。我将文件夹C:\Windows\Microsoft.NET\Framework\v4.0.30319添加到我的路径中,因此我可以运行msbuild,但它不起作用 $ msbuild C:\Program Files (x86)\Git\bin\sh.exe: msbuild: command not found 然而,msbuild.exe确实: $ msbuild.exe Microsoft (R) Build Engine version 4.0.3031

我运行中分发的MSys/Bash。我将文件夹
C:\Windows\Microsoft.NET\Framework\v4.0.30319
添加到我的路径中,因此我可以运行
msbuild
,但它不起作用

$ msbuild
C:\Program Files (x86)\Git\bin\sh.exe: msbuild: command not found
然而,
msbuild.exe
确实:

$ msbuild.exe
Microsoft (R) Build Engine version 4.0.30319.17929

但是命令
explorer
可以很好地解决这个问题。发生了什么事?

这是MSys中的一个错误,在MSys中,文件夹和文件(不包括扩展名)共享相同的名称。在这种情况下:

  • 文件
    C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
  • 文件夹
    C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild

您必须通过编写
msbuild.exe

来解决问题。如果找不到msbuild.exe,则需要对其进行配置

打开命令提示符并运行Visual Studio Common7/Tools文件夹中的文件vsvars32.bat

i、 e C:\Program Files x86\Microsoft Visual Studio 12.0\Common7\Tools\vsvars32.bat


这将正确设置找到msbuild.exe所需的所有必要变量。

其他人在MSys下的
mplayer
中也有同样的问题我也有同样的问题,但msbuild.exe也不起作用。我尝试了这两种回答,但只有当我通过其完整路径直接调用msbuild.exe时,它才起作用。我必须在.bashrcAdd msbuild.exe中写入别名,将其添加到系统路径变量中。这对我有效您也可以通过在
路径
中的
..\Framework\v4.0.30319
目录之前的目录中创建一个名为
msbuild
msbuild.exe
的链接来解决此问题。这在我的Windows 8.1和Visual Studio 2013上不起作用。vsvars32.bat也没有输出?!我也尝试过使用管理shell,但没有成功。对我来说,它现在位于
C:\Program Files\Microsoft Visual Studio\2019\Community\Common7\Tools\vsdevcmd\ext