Come mantenere i valori definiti in un target di compilazione attivo in altri target? Se PropertyGroup non è l'entità di MsBuild di scrittura che dovrei usare qui, che cos'è? ReleaseDir viene stampato ok in target "pacchetto", ma è vuota in "DoPackage"Passaggio del valore del gruppo di proprietà da un'attività di MsBuild a un altro
<Target Name="Package">
<PropertyGroup>
<ReleasesDir>c:\tmp</ReleasesDirBase>
</PropertyGroup>
<Message Text="$(ReleaseDir)"/>
<CallTarget Targets="DoPackage" Condition="!Exists('$(ReleaseDir)')"/>
</Target>
<!-- Do the acutal packaging -->
<Target Name="DoPackage">
<Message Text="Creating package in '$(ReleaseDir)'"/>
<Error Condition="'$(ReleaseDir)' == ''" Text="No ReleaseDir defined"/>
<MakeDir Directories="$(ReleaseDir)"/>
...
</Target>
Desidero che DoPackage venga eseguito solo se ReleaseDir esiste (ho utilizzato la condizione in CallTarget per ottenere ciò). Posso raggiungere questo obiettivo utilizzando DependsOnTarget? – ripper234
Ora che ho effettivamente letto il link che hai postato, la soluzione è semplice: ho scritto un'attività separata chiamata "DefineProperties" e, al termine, le proprietà sono ... definite. Grazie. – ripper234
Sì, questa è la soluzione, ho aggiornato il campione. –