2017-05-18 57 views
0

我有以下目標: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依賴未在64位目標構建。我猜MSBuild認爲它已經由於x86目標而生成了。我不想爲所有共享組件創建不同的x86/x64目標。我有應用程序(取決於Build_Shared),需要x86和x64構建,所以我需要這樣的依賴。

回答

1

請注意,每個目標只在構建期間執行一次。如果您有多個目標取決於您的Shared_1目標,Shared_1只會運行一次,並且在遇到第二個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;.."如果你需要。