0

我在 C++ Builder 2010 中有一个项目组。它包含多个项目。其中一个项目除了DebugReleae之外,还有一个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>
4

0 回答 0