我正在尝试编译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设置为属性(/p:BDS=($BDS);Config=Release),但引发了另一个错误(类似于:无法在%BDS%\bin\dcc32.exe找到编译器)。
从Makefile中调用此函数是准备在CI服务器上构建我们的产品的一部分,我无法保证BDS变量在那里设置。那么,我该如何向msbuild提供在Makefile中拥有的BDS变量使其接受它?