使用MSBuild自动化Delphi 2010项目构建

The*_*ude 11 delphi msbuild command-line compilation

我正在寻找使用MSBuild编译我的Delphi 2010项目,但有些事情是不对的,我无法让MSBuild编译我的项目.

我试过这个命令行:

"C:\ Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe""C:\ MyProject\Myapp.dproj"/ t:发布

还有这个:

"C:\ Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe""C:\ MyProject\Myapp.dproj"/ p:Configuration = 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
Run Code Online (Sandbox Code Playgroud)

MSBuild错误是:

C:\MyProject\Myapp.dproj : error MSB4057: The target "Release" does
not exist in the project.
Run Code Online (Sandbox Code Playgroud)

任何有助于我使用MSBuild构建我的应用程序的帮助将不胜感激.

(是的,我完全了解像FinalBuilder这样的工具,我只是想学习如何使用MSBuild这样做)

谢谢!

Chr*_*ris 13

您需要切换参数.目标参数(/ t)告诉MSBuild要创建哪个目标.这可以是'Make','Clean'或'Build'(或者这些的组合 - 在这种情况下用';'分隔它们).

属性参数(/ p)将属性转发给实际的编译器.您可以使用指定配置/p:config=

因此,如果要使用发布配置清理然后构建项目,请指定以下参数:

msbuild.exe "/t:Clean;Build" "/p:config=Release" Myapp.dproj
Run Code Online (Sandbox Code Playgroud)

  • @David Heffernan我正在使用powershell,它用分号分隔命令.这使得有必要在它们周围加上引号.标准控制台不需要这个 (2认同)
  • @chris替代是使用/ t两次(/ t:clean/t:build)或者使用后退勾选来逃避; (/ clean`;构建) (2认同)