msbuild build-automation automated-deploy

MSBuild-Obteniendo el objetivo llamado desde la línea de comando



build-automation automated-deploy (4)

¿Alguien sabe cómo llamar al nombre de TARGET (/ t) desde la línea de comandos de MSBuild? Hay unos pocos tipos de objetivos que se pueden llamar y quiero usar esa propiedad en una notificación a los usuarios.

Ejemplo:

msbuild Project.proj / t: ApplicationDeployment / p: Environment = DEV

Quiero acceder a las palabras de destino ApplicationDeployment en mi archivo .Proj.

¿Hay alguna propiedad a la que pueda acceder? ¿Alguna pista de cómo hacer esto?

EDITAR: no quiero tener que pasar también una propiedad para obtener esto.

ACTUALIZACIÓN: se basa en scripts de implementación que utilizan scripts de MSBuild. Mi servidor de compilación no se usa para implementar código, solo para compilar. El servidor de compilación en sí tiene notificaciones de compilación que se pueden habilitar.


No estoy seguro de cómo hacer exactamente lo que pregunta, pero ¿podría pasar esa cadena usando la opción / p?

msbuild Project.proj /t:ApplicationDeployment /p:Environment=DEV;MyValue=ApplicationDeployment

La única otra manera que puedo ver para hacerlo es usar una propiedad condicional en cada objetivo, y así establecer el primer objetivo que se invocará.

<Target Name="ApplicationDeployment"> <PropertyGroup> <InvokedTarget Condition="''${InvokedTarget}''==''''">ApplicationDeployment</InvokedTarget> </PropertyGroup> ... </Target>


No hay forma de hacer esto (que yo sepa). MSBuild no tiene una propiedad para la lista de objetivos solicitados para compilar.

Sin embargo, si encuentra una manera, tenga en cuenta que puede no ser un objetivo único, sino una lista de objetivos para compilar.


Recomiendo usar un servidor como CCNET para gestionar las ejecuciones de compilación y las notificaciones. Claro, puede hacer cosas en su script de MSBuild para enviar notificaciones, pero ese dominio pertenece al servidor de compilación.


¡Encontré la respuesta!

<Target Name="ApplicationDeployment" > <CreateProperty Value="$(MSBuildProjectName) - $(Environment) - Application Deployment Complete"> <Output TaskParameter="Value" PropertyName="DeploymentCompleteNotifySubject" /> </CreateProperty>

Me gustaría dar crédito parcial a apático. No estoy seguro de cómo hacer eso.