2012-02-17 65 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

相关问题