jpf*_*ius 9

首先要注意的是,参数在Delphi XE2中DelphiWin32LibraryPath更名为DelphiLibraryPath.所以你必须改变你的构建类似的东西

msbuild /p:DelphiWin32LibraryPath="..." ...
Run Code Online (Sandbox Code Playgroud)

msbuild /p:DelphiLibraryPath="..." ...
Run Code Online (Sandbox Code Playgroud)

其次,当从XE迁移项目时,Delphi XE2会在项目文件中添加一些资源引用,这些资源引用将无法在构建服务器上进行编译(正如Uwe Raabe的回答所指出的那样).要解决此问题,请dproj在文本编辑器中打开该文件,然后删除引用ico名为"ProjectName_Icon4.ICO" 的文件的行.

第三个讨厌的事情是XE2中引入的命名空间.这将导致构建服务器停止编译,如错误消息

File "Windows.dcu" not found
Run Code Online (Sandbox Code Playgroud)

此文件现在称为"Winapi.Windows".为了避免必须更改项目中的所有uses子句,您可以告诉编译器隐式地自动添加一些命名空间:

msbuild /p:Namespace="System;System.Win;Winapi;Vcl;Vcl.Imaging;Data;Xml" ...
Run Code Online (Sandbox Code Playgroud)

您可能必须添加一些在项目中使用的名称空间.