我一直在使用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路径。