quiero declarar tres propiedades en mi archivo de MSBuild y sobrescribir una propiedad con el valor de otra (en función del objetivo que se llama), pero no puede encontrar la manera de hacer esto. Mi fichero de construcción se ve algo como esto:propiedades de sobrescritura con MSBuild
<PropertyGroup>
<DeployPath_TEST>\\test-server-path\websites\mysite</DeployPath_TEST>
<DeployPath_LIVE>\\live-server-path\websites\mysite</DeployPath_LIVE>
<DeployPath></DeployPath>
</PropertyGroup>
<Target Name="Deploy-TEST">
<PropertyGroup>
<DeployPath>$(DeployPath_TEST)</DeployPath>
</PropertyGroup>
<CallTarget Targets="Deploy-Sub"/>
</Target>
<Target Name="Deploy-LIVE">
<PropertyGroup>
<DeployPath>$(DeployPath_TEST)</DeployPath>
</PropertyGroup>
<CallTarget Targets="Deploy-Sub"/>
</Target>
<Target Name="Deploy-Sub">
<Message Text="Deploying to $(DeployPath)"/>
<MSBuild Projects="MySolution.csproj" Targets="Rebuild" />
<ItemGroup>
<MyFiles Include="**\*"/>
</ItemGroup>
<Copy SourceFiles="@(MyFiles)"
DestinationFiles="@(MyFiles->'$(DeploymentPath)\%(RecursiveDir)%(FileName)%(Extension)')"/>
</Target>
En este momento estoy tratando de volver a declarar la propiedad que establezca su valor en consecuencia, pero esto no está funcionando.
Gracias, eso fue útil. Todavía soy un poco nuevo en el procesamiento por lotes y MS no hace un buen trabajo explicando conceptos relacionados en mi opinión. Una nota más En realidad escapé sin crear una propiedad global; eso reduce un poco el contexto, por lo que es más fácil leer el código: el destino A llama a los destinos B y C. B establece una propiedad de lista y C realiza el procesamiento por lotes del valor de esa propiedad. como notó mdresser establecer la propiedad en el mismo destino no funcionó. Espero que ayude a alguien; Pasé 3-4 horas tratando de entender esto antes de encontrar esta publicación. – AlexeiOst
Un punto más, dices que recibes una notificación de que solo Cat ha cambiado, ¿has intentado guardar los cambios? ¿Funciona? (Lo dudo) –