¿Cómo puedo mantener los valores definidos en un objetivo de construcción activo en otro objetivo? Si PropertyGroup no es la entidad de escritura de MsBuild que debería usar aquí, ¿qué es? ReleaseDir se imprime bien en el objetivo de "paquete", pero está vacío en "DoPackage"Pasar el valor del grupo de propiedades de una tarea de MsBuild a otra
<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>
Me gustaría que DoPackage se ejecute solo si ReleaseDir existe (utilicé la condición en CallTarget para lograr esto). ¿Puedo lograr esto usando DependsOnTarget? – ripper234
Ahora que realmente leí el enlace que publiqué, la solución es simple: escribí una tarea separada llamada 'DefineProperties', y una vez terminada las propiedades están ... definidas. Gracias. – ripper234
Sí, esa es la solución, he actualizado la muestra. –