在编译Delphi项目期间,编译器会给出以下错误:
致命:未找到F1027单位:'System.pas'或二进制等值(.dcu)
只有在使用TFS构建系统构建msbuild时才会发生这种情况。
通过命令行执行时工作正常,如下所示。
命令:C:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ msbuild.exe E:\ Src \ Project \ sample.groupproj / v:m / t:Build / p:Config = Release
以下通过MSbuild执行失败:
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXA-1', 'example.com');
ga('create', 'UA-XXXB-1', {'name': 'newTracker'}); // New tracker.
ga('send', 'pageview');
ga('newTracker.send', 'pageview'); // Send page view for new tracker
</script>
注意:设置以下env变量:BDS,BDSLIB,BDSCOMMONDIR,BDSINCLUDE
当通过CCNET执行时,dcc32.exe有额外的参数,如-I,-LE,-LN,-O,-R,-U,-NB,-NH,但是通过TFS执行没有这些参数列表
有关如何解决这些错误的任何想法。
提前致谢....
答案 0 :(得分:1)
您的环境可能未正确配置。首先在调用msbuild之前调用位于Delphi安装的BIN目录中的RSVARS.BAT文件。
如果你是从另一个构建系统调用它,我的建议是创建一个简单的批处理/ cmd文件,它将调用RSVARS.BAT,然后执行MSBUILD并让你的构建系统调用它。
如果您尝试单独调用RSVARS.BAT,它将修改其环境副本然后退出,这将对父环境无效。从MSBUILD脚本中添加对RSVARS.BAT的调用也会因同样的原因而失败。必须从与MSBUILD任务相同的上下文环境(或更高版本)调用RSVARS.BAT。