0

C++ Builder 2010 にプロジェクト グループがあります。これには複数のプロジェクトが含まれています。これらのプロジェクトの 1つには、 DebugReleaeの他に、ReleaseのであるDemoビルド構成があります。

私が遭遇する問題は、私たちが持っているビルド スクリプトからこれを実行し、プロジェクト グループ ファイルを呼び出して、デモ構成を使用してビルドすることを伝えると、未解決の WinMainに関するエラーが発生することです。存在しないビルド構成名を使用すると、同じエラーが発生します。したがって、私の最初の考えは、これはプロジェクト グループ内の他のプロジェクトがデモ構成を持っていなかったという事実によるものでなければならないということでした。しかし、cmd からプロジェクト グループ ファイルに対して msbuild を実行してDemoを渡すと、問題なくビルドされました。

C:\src\foo\AutoBuild> msbuild ..\foo.groupproj /t:build /p:Configuration=Demo

cmd から msbuild を使用して特定のプロジェクトをビルドする場合も同様です。Config<msbuild /> /*Configuration* プロパティが各タスク呼び出しで引き継がれることを確認しました。

プロジェクト グループ ( .groupproj ) ファイルをハッキングし、 Releaseの実行時に問題のプロジェクトのDemoを強制的に実行することも機能しました。

...

<Target Name="Foo:Make">
  <MSBuild Targets="Make" Projects="Foo.cbproj" Properties="Config=Demo"/>
</Target>

...

何がこれを引き起こしているのでしょうか?

アップデート

また、デモが選択されたときにメイン ビルド スクリプトで特定のプロジェクトのみを実行することによっても正常に動作します。リリースビルドは、この前にビルド スクリプトによってビルドされていることに注意してください。

<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