2017-05-18 7 views
0

I持って次のターゲットを構築されていません。MSBuildの依存性は

<Target Name="Build" DependsOnTargets="Build_Shared" /> 
<Target Name="Build_Shared" DependsOnTargets="Build_Shared_x86;Build_Shared_x64"/> 
<Target Name="Build_Shared_x86" DependsOnTargets="SetPlatform_x86;Shared_1;..." /> 
<Target Name="Build_Shared_x64" DependsOnTargets="SetPlatform_x64;Shared_1;..." /> 

問題はShared_1依存性がx64のターゲットに構築されていないということです。私はMSBuildがx86ターゲットのために既に構築されていると思います。私はすべての共有コンポーネントに対して異なるx86/x64ターゲットを作成したくありません。ビルドにはx86とx64が必要なアプリケーション(Build_Sharedに依存)があるので、このような依存関係が必要です。

答えて

1

ビルド中に各ターゲットはの順に実行されます。 Shared_1ターゲットに応じて複数のターゲットがある場合、Shared_1は1回だけ実行され、2回目にDependsOnTargets="..;Shared_1;.."が発生した場合はすでに実行されているとみなされます。

あなたが同じターゲットを複数回実行する必要がある場合は、ネストされたMSBuildのコマンドを使用する必要があります:あなたはそれを必要とする場合

<Target Name="Build_Shared"> 
    <MSBuild Projects="$(MSBuildProjectFile)" Targets="Shard_1" Properties="Platform=x86" /> 
    <MSBuild Projects="$(MSBuildProjectFile)" Targets="Shard_1" Properties="Platform=x64" /> 
</Target> 

またTargets="SetPlatform_x86;Shared_1;.."を使用することができます。