如果我打开命令提示符,键入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()
答案 0 :(得分: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).
您可以使用命令'set path'
查看路径环境变量的当前值答案 1 :(得分:1)
因为命令pompt缺少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。