2012-02-17 70 views
8

我正在尋找使用MSBuild編譯我的Delphi 2010項目,但有些東西不對,我只是無法讓MSBuild編譯我的項目。使用MSBuild實現Delphi 2010項目自動化編譯

我試過此命令行:

「C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ msbuild.exe」 「C:\ MyProject的\ Myapp.dproj」/ T:發行

和此:

「C:\的Windows \ Microsoft.NET \框架\ v4.0.30319 \ msbuild.exe」 「C:\ MyProject的\ Myapp.dproj」/ p:配置= Release/t:Release

但MSBuild不會識別我的構建配置!

我也改變了[rsvars.bat]但它沒有工作!

@SET BDS=C:\Program Files (x86)\Embarcadero\RAD Studio\7.0 
@SET BDSCOMMONDIR=C:\Users\Public\Documents\RAD Studio\7.0 
@SET FrameworkDir=C:\Windows\Microsoft.NET\Framework\v4.0.30319 
@SET FrameworkVersion=v4.0.30319 
@SET FrameworkSDKDir= 
@SET PATH=%FrameworkDir%;%FrameworkSDKDir%;%PATH% 
@SET LANGDIR=EN 

的MSBuild的錯誤是:

C:\MyProject\Myapp.dproj : error MSB4057: The target "Release" does 
not exist in the project. 

任何幫助,讓我建立我的應用程序的MSBuild將不勝感激。

(是的,我充分意識到類似的FinalBuilder工具,我只是想了解如何與MSBuild的做到這一點)

謝謝!

+0

謝謝你好,(1)我改變了rsvars.bat(但仍然無法編譯:(),(2)DOS無法識別沒有完整路徑的msbuild – TheDude 2012-02-17 19:39:54

+3

如果在運行msbuild之前運行rsvars.bat文件,控制檯(與DOS不同,作爲旁註)會識別一個pla在調用'msbuild.exe'時rsvars.bat會修改PATH變量(請參見第6行)。您也可以永久編輯環境變量 - 這樣您就不必每次都運行rsvars.bat。 – Chris 2012-02-17 19:41:53

+0

2.如果您在調用msbuild之前運行rsvars.bat,它肯定會識別msbuild。閱讀文檔。他們解釋了這一切。 – 2012-02-17 19:44:58

回答

12

您需要切換參數。目標參數(/ t)告訴MSBuild要創建哪個目標。 這可以是'Make','Clean'或'Build'(或者這些的組合),在這種情況下將它們與';'分隔)。

屬性參數(/ p)將屬性轉發給實際的編譯器。您可以指定例如使用/p:config=

所以,如果你要清理,然後建立一個使用發佈配置的項目,指定這樣的paramters配置:

msbuild.exe "/t:Clean;Build" "/p:config=Release" Myapp.dproj 
+0

謝謝,克里斯,但現在我得到這個: – TheDude 2012-02-17 19:41:50

+0

Microsoft(R)構建引擎版本4.0.30319.1 [Microsoft .NET Framework,版本4.0.30319.1] 構建開始2/17/2012 20:37:11下午。 節點1上的項目「D:\ _ Software \ test.dproj」(清理;構建目標) 。 D:\ _ Software \ test.dproj:錯誤MSB4057:項目中存在目標「Clean」沒有 。 完成建設項目「D:\ _ Software \ test.dproj」(清理;構建目標 (s)) - 失敗。 構建失敗。 「D:\ _ Software \ test.dproj」(Clean; Build target)(1) - > D:\ _ Software \ test.dproj:錯誤MSB4057:項目中不存在目標「乾淨」 。 0警告 1錯誤 – TheDude 2012-02-17 19:41:55

+1

您是否在發出msbuild命令之前運行rsvars? – 2012-02-17 19:44:14

0

變化/p:Configuration=Release/p:config=Release

相關問題