Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Automate Delphi 2010 project build with MSBuild

I'm looking to compile my Delphi 2010 project using MSBuild, but something isn't right, I just couldn't make MSBuild to compile my project.

I tried this command line:

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

and this:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" "C:\MyProject\Myapp.dproj" /p:Configuration=Release /t:Release

But MSBuild won't recognize my build configuration!

I also changed [ rsvars.bat ] but it didn't work!

@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

The MSBuild error is:

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

Any help to get me build my app with MSBuild would be greatly appreciated.

(Yes, I'm fully aware of tools like FinalBuilder, I just want to learn how to do this with MSBuild)

Thanks!

like image 915
TheDude Avatar asked Feb 17 '12 19:02

TheDude


1 Answers

You need to switch the parameters. The target parameter (/t) tells MSBuild which target to create. This can be either 'Make', 'Clean' or 'Build' (or a combination of those - seperate them with ';' in this case).

The property parameter (/p) forwards properties to the actual compiler. You can specify for example the configuration using /p:config=

So if you want to clean and then build a project using the release configuration, specify the paramters like this:

msbuild.exe "/t:Clean;Build" "/p:config=Release" Myapp.dproj
like image 196
Chris Avatar answered Oct 16 '22 14:10

Chris