未找到单位:'System.pas'或二进制等值(.dcu):在jenkins

时间:2018-04-04 12:10:39

标签: delphi jenkins msbuild jenkins-plugins delphi-2010

我正在使用Jenkins为测试项目每15分钟生成一次自动构建。

编译Delphi时本身并没有出现问题,现在当我运行jenkins时会出现以下问题......

  

C:\ Program Files(x86)\ Embarcadero \ RAD   Studio \ 7.0 \ Bin \ CodeGear.Delphi.Targets(136,3):错误:Project1.dpr(1)   致命:未找到F1027单位:'System.pas'或二进制等值(.dcu)

我已经尝试过以这种方式运行Windows命令。

cd "C:\Users\carlos.santos\Desktop\teste"
call build.bat

以这种方式构建Build.bat。

call "C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\bin\rsvars.bat"
msbuild "Project1.dproj" /p:config=Release /p:Warn=0

我已经尝试过以这种方式使用Rad Studio插件本身为Jenkins运行,它也没有用。

Rad Studio for Jenkins

我已经在一些论坛中看到,如果我有很多路径或者没有在库路径中没有Delphi的默认路径可能会有问题,但我也测试了这个并且没有。

以下是我的路径。

  

$(BDS)\ lib; $(BDS)\进口; $(BDS)\ Lib \ Indy10; $   (BDSCOMMONDIR)\ Dcp; $(BDS)\ include; $(BDS)\ RaveReports \ Lib;   $(BDSCOMMONDIR)\ Bpl; $(BDS)\ LIB \调试; $(BDS)\ BIN; $(DELPHI)\滨;

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\v2.0.50727
@SET FrameworkVersion=v2.0.50727
@SET FrameworkSDKDir=
@SET PATH=%FrameworkDir%;%FrameworkSDKDir%;%PATH%
@SET LANGDIR=EN

我在Delphi中安装了第三方组件,但我不知道它是否会影响任何东西。任何可以帮助我的人都会心存感激。

jenkins和cmd执行的属性之间的区别是:

pic1

pic2

pic3

3 个答案:

答案 0 :(得分:2)

可能是同一问题的另一个原因。 我刚刚经历并解决了。 就我而言,这与以下事实有关:除了Release和Debug,我还有另一个配置,即ReleaseConsumer。 我的构建命令包括指定配置:

DoJenkinsTasks "US2D_GUI" "Config=ReleaseConsumer;Platform=Win64"

现在,我遇到了与上述相同的错误。 原因是找不到带有dcu文件的ReleaseConsumer文件夹。 我通过在c:\ Program Files(x86)\ Embarcadero \ Studio \ 19.0 \ lib \ win64 \下创建一个新文件夹releaseConsumer并将发行版中的所有dcu文件复制到其中来解决了该问题。

答案 1 :(得分:1)

解决了将参数<form> {% csrf_token %} {% regroup form by field.group as field_groups %} {% for field_group in field_groups %} {{field_group.grouper}} {% for field in field_group.list %} {{field}} {% endfor %} {% endfor %} </form> 与我的Delphi放在一起的问题  msbuild调用上的LibraryPath参数,例如:

_EnvLibraryPath

答案 2 :(得分:0)

使用msbuild选项运行/v:diagnostic,您将看到没有设置默认环境路径:

Initial Properties:
___ResourcePath                = 
__ObjectPath                   = 
__ResourcePath                 = 
_EnvDCPOutput                  = 
_EnvLibraryPath                = 
_EnvNamespace                  = 
_EnvPackageOutput              = 
_ObjectPath                    = 
_OutputDRCFiles                = false
_ProjectFiles                  = @(DelphiCompile)
_ResolveGENTLBBindingsTarget   = 

这是因为您缺少构建服务器上的%APPDATA%\CodeGear目录(在运行构建的用户下)。

尤其是,您需要CodeGear\BDS\7.0\EnvOptions.proj设置文件,其中包含所有环境变量。 将其放在适当的位置,您将看到msbuild的诊断显示了如下所示的属性:

Initial Properties:
___ResourcePath                = C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\lib;\Imports;C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\Imports;C:\Users\Public\Documents\RAD Studio\7.0\Dcp;C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\include;C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\lib;C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\Lib\Indy10;