2013-05-15 56 views
-1

如果我打開命令提示符,然後鍵入的MSBuild,或/ MSBuild的後跟路徑的文件,它說,從命令提示符下運行的MSBuild

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

然而,當我運行在同一行視覺工作室命令提示符工作..任何人都知道這是爲什麼?

這裏是我的Python腳本,可以通過在命令提示符下運行的MSBuild

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

這是一個「蝙蝠」的方法。 http://stackoverflow.com/questions/5669765/build-visual-studio-project-through-the-command-line/5669820#5669820 – granadaCoder

回答

4

當您啓動Visual Studio命令提示符,它增加了一些其他位置的「路徑」環境變量 - 這恰好包括MSBuild的位置。

有趣的一面 - 您可以批量使用'where'命令來查找應用程序的路徑。例如,在Visual Studio命令行運行「其中的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). 

可以查看路徑的當前值環境變量使用命令「設置路徑」

+0

當我直接添加整個文件路徑到MSBuild.exe然後添加文件路徑在命令提示符工作。但是,當我複製到我的python腳本同樣的事情它不起作用仍然吐出相同的消息。我將添加一個我的Python代碼的編輯。 – BesaseB

1

因爲您的命令pompt從其路徑環境變量中缺少msbuild.exe的位置。通常是C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319對於.NET 4嘗試在您的計算機管理控制檯或在命令提示符下設置它:

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

然後再次嘗試的MSBuild。

相關問題