如何使用MSBuild和Delphi XE2进行构建

35

我一直在使用Delphi XE和MSBuild构建项目,以下是一个简单的示例,可以在批处理文件中正常工作。Project1是使用IDE中的“File | New | VCL forms application”创建的空项目:

call "c:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bin\rsvars.bat"
msbuild.exe /target:Build /p:config=Release  "c:\scratch\test\project1.dproj" 
pause
如果我在Delphi XE2中创建了一个新的空项目,将其保存为project1.dproj(dproj与XE非常不同),并运行以下内容:
call "c:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin\rsvars.bat"
msbuild.exe /target:Build /p:config=Release  "c:\scratch\test\project1.dproj" 
pause

它会给出:

Build FAILED.

"c:\scratch\test\project7.dproj" (Build target) (1) ->
  c:\scratch\test\project7.dproj : error MSB4057: The target "Build" does not e
xist in the project.

    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:00.00

我尝试了各种目标名称,包括我在Codegear.Delphi.Targets中找到的内容,但我对MSBuild不够了解。有人能帮忙告诉我应该放什么吗?

后来解决了:在另一台装有XE2的计算机上尝试后,如David所建议的那样,它可以正常工作。事实上,问题出在RSVARS.BAT文件的内容上,它没有正确指定BDS路径。


2
这是你的dproj文件中的这一行吗?:<Import Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')" Project="$(BDS)\Bin\CodeGear.Delphi.Targets"/>你的msbuild.exe命令没问题,在这里正常工作。 - Arjen van der Spek
2
这就是我做的方式。你的安装有问题,你需要和Emba交流。 - David Heffernan
2
@David:你说得对 - 我在另一台安装XE2的机器上尝试了一下,它可以正常工作,所以这一定是一个安装问题。谢谢。 - Brian Frost
7
你应该发布一个回答到自己的问题,并将其标记为已采纳。 - Kenneth Cochran
1
@BrianFrost 你应该把你的解决方案放到一个答案中,添加你用来排除故障的步骤,然后将其标记为已接受。 - Kenneth Cochran
显示剩余2条评论
1个回答

5

根据发布者报告,该问题是由于RSVARS.bat文件中的错误BDS路径引起的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接