Pergunta

Alguém sabe como obter o nome do destino (/t) chamado da linha de comando msbuild? Existem alguns tipos de metas que podem ser chamadas e eu quero usar essa propriedade em uma notificação para os usuários.

Exemplo:

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

Eu quero acesso às palavras -alvo ApplicationDeployment No meu arquivo .proj.

Existe uma propriedade que eu possa acessar? Alguma pista de como fazer isso?

EDITAR: Eu não quero ter que passar também em uma propriedade para conseguir isso.

ATUALIZAR: Isso é baseado em scripts de implantação usando scripts msbuild. Meu servidor de construção não é usado para implantar código, apenas para construção. O próprio servidor de construção possui notificações de construção que podem ser optadas.

Foi útil?

Solução 2

Eu encontrei a resposta!

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

Eu gostaria de dar crédito parcial à apática. Não tenho certeza de como fazer isso.

Outras dicas

Não tenho certeza de como fazer exatamente o que você pergunta, mas você poderia passar essa string usando a opção /p?

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

A única outra maneira de ver isso é usar uma propriedade condicional em cada destino e, assim, estabelecer o primeiro alvo a ser chamado.

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

...
</Target>

Não há como fazer isso (que eu conheço). O MSBuild não possui uma propriedade para a lista de metas solicitadas para construir.

No entanto, se você encontrar uma maneira, lembre -se de que pode não ser um único alvo, mas uma lista de alvos a serem construídos.

Eu recomendo usar um servidor como o CCNET para lidar com execuções de construção e notificação. Claro, você pode fazer as coisas com o seu script msbuild para enviar notificadoras, mas esse domínio pertence ao servidor de construção.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top