我正在尝试从Virtual Treeview编译这两个组件(VirtualTreesR.bpl和VirtualTreesD.bpl),将它们合并到一个称为VirtualTrees.groupproj的Delphi项目组中。它们应该使用MSBuild进行编译,但是此调用是通过(Embarcadero)Makefile完成的。 Makefile中的相关部分如下所示:
msbuild.exe /nologo /v:m /t:build /p:Config=Release "$(VTVDIR)\Packages\Delphi 2010\VirtualTrees.groupproj"
不幸的是,这会导致生成MSB4040,因为环境变量BDS不在cmd.exe中设置,而是在Makefile中设置。我在调用msbuild之前尝试了SET BDS = $(BDS),但无济于事。我还尝试将BDS设置为property(/ p:BDS =($ BDS); Config = Release),这导致了另一个错误(有点像:在%BDS%\ bin \ dcc32.exe找不到编译器)。
来自Makefile的此调用是在CI服务器上构建产品的准备工作的一部分,并且我不能保证在此设置BDS变量。那么,如何提供Makefile中包含的BDS变量以使其接受它的msbuild?
最佳答案
在批处理文件中,我使用rsvars.bat:
call "C:\Program Files (x86)\CodeGear\RAD Studio\5.0\bin\rsvars.bat"
MSBuild SomeProject.dproj ...
(您必须明显地调整路径。)