【发布时间】:2013-12-28 16:20:04
【问题描述】:
我尝试配置 Hudson (3.1.0) 来构建 Delphi XE3 项目 (MSBuild)。
构建批次:
call "C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\bin\rsvars.bat"
msbuild "X:\Tests\DelphiTest\Project1Test.dproj" /t:Build /v:minimal /p:config="Debug"
在命令行中运行此批处理 (cmd.exe) - 构建正确。
当我将此批次放入 Hudson 时,构建步骤因 delphi 编译器错误而失败:
[..]
C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\bin\CodeGear.Common.Targets : warning : Expected configuration file missing - C:\Windows\system32\config\systemprofile\AppData\Roaming\Embarcadero\BDS\10.0\EnvOptions.proj
_PasCoreCompile:
Embarcadero Delphi for Win32 compiler version 24.0
Copyright (c) 1983,2012 Embarcadero Technologies, Inc.
C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\Bin\CodeGear.Delphi.Targets(172,5): error E1026: File not found: 'Controls.res'
[..]
事实上,我在这个位置没有丢失文件。但我在C:\Users\<username>\AppData\Roaming\Embarcadero\BDS\10.0
所以我尝试做一些假想,比如将现有目录复制到丢失的位置,但它不起作用。
我正在使用:Delphi XE3 Enterprise,Win 7 Ultimate (x64)
感谢您的帮助。
【问题讨论】:
-
不了解 Hudson,但无论 XE3 版本的 CodeGear.Common.Targets 是
<Import Project="$(APPDATA)\borland\$(BDSAppDataBaseDir)\5.0\EnvOptions.proj" , Condition="Exists('$(APPDATA)\borland\$(BDSAppDataBaseDir)\5.0\EnvOptions.proj')"/>,MSBUILD 都应该扩展 APPDATA 环境变量,因此您需要让 Hudson 正确设置它以任何用户身份登录。 -
让
<EnvOptions>$(APPDATA)\Embarcadero\$(BDSAppDataBaseDir)\$(ProductVersion)\EnvOptions.proj</EnvOptions> -
@GerryColl 我应该在哪里添加这个
,一些 Hudson 配置文件? -
最后我使用有问题的提示解决了问题stackoverflow.com/questions/5735241/… 我已经更改了登录 Hudson windows servis 的用户。现在,一切都很好。我知道这是一个中间解决方案,但对我和我的环境来说都很好。感谢您的帮助!
-
FWIW:EnvOptions 标记位于 CodeGear.Common.Targets 中,该标记位于 Delphi/Rad Studio bin 文件夹中。它是一个 MSBuild“目标”文件,它告诉 MSBuild 在哪里可以找到其他信息。
标签: delphi jenkins msbuild hudson