-1

如果我打开命令提示符并输入 msbuild 或 /msbuild 后跟一个路径文件,它会说

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

但是,当我在 Visual Studio 命令提示符下运行相同的行时,它可以工作。有人知道这是为什么吗?

这是我通过命令提示符运行 MSBuild 的 python 脚本

import subprocess
filename="C:\Users\bb\Documents\bb\Code\VisualStudio\tree.ProEAPI.UnitTests\tree.ProEAPI.UnitTests.vbproj"
p = subprocess.Popen(['C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe', filename], shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
for line in p.stdout.readlines():
    print line,
retval = p.wait()
4

2 回答 2

5

当您启动 Visual Studio 命令提示符时,它会向“路径”环境变量添加一些额外的位置 - 这恰好包括 MSBuild 的位置。

有趣的旁注 - 您可以批量使用“where”命令来查找应用程序的路径。例如,在 Visual Studio 命令行中运行 'where msbuild' 会输出以下内容:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC>where msbuild
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
C:\Windows\Microsoft.NET\Framework64\v3.5\MSBuild.exe

但在标准命令提示符下,输出如下:

C:\Users\stephen.edmonds>where msbuild
INFO: Could not find files for the given pattern(s).

您可以使用命令“设置路径”查看路径环境变量的当前值

于 2013-05-15T13:35:22.127 回答
1

因为您的命令提示符在其路径环境变量中缺少 msbuild.exe 的位置。通常 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319 for .net 4. 尝试在您的计算机管理控制台或命令提示符下进行设置:

set path=%path%;C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\ 

然后再次尝试 msbuild。

于 2013-05-15T13:37:06.523 回答