我在 C++ Builder 2010 中有一个项目组。它包含多个项目。其中一个项目除了Debug和Releae之外,还有一个Demo构建配置,它是Release的子配置。
我遇到的问题是,如果我从我们拥有的构建脚本中运行它,调用项目组文件并告诉它我想使用Demo配置进行构建,我会收到一个关于unresolved WinMain的错误。通过使用不存在的构建配置名称,我得到了同样的错误。所以我最初的想法是,这一定是因为项目组中的其他项目没有Demo配置。但是,当我尝试从 cmd 对项目组文件运行 msbuild 并将其传递给Demo时,它构建得很好。
C:\src\foo\AutoBuild> msbuild ..\foo.groupproj /t:build /p:Configuration=Demo
使用 cmd 中的 msbuild 构建特定项目也是如此。我已经检查了Config /*Configuration* 属性是否通过每个<msbuild />
任务调用进行了传递,并且确实如此。
破解项目组(.groupproj )文件并在运行Release时强制它为有问题的项目运行Demo也有效。
...
<Target Name="Foo:Make">
<MSBuild Targets="Make" Projects="Foo.cbproj" Properties="Config=Demo"/>
</Target>
...
知道是什么原因造成的吗?
更新
此外,通过在选择Demo时仅运行主构建脚本中的特定项目,它也可以正常工作。请注意,发布版本已由之前的构建脚本构建。
<Target Name="Foo:Build">
...
<MSBuild Condition="$(Configuration)==''" Targets="Make" Projects="..\Server\Bar.groupproj" Properties="Config=Release" />
<MSBuild Condition="$(Configuration)==''" Targets="Foo" Projects="..\Server\Bar.groupproj" Properties="Config=Demo" />
...
</Target>