Domanda

Qualcuno sa come ottenere il nome di TARGET (/ t) chiamato dalla riga di comando di MSBuild? Esistono alcuni tipi di target che possono essere chiamati e desidero utilizzare quella proprietà in una notifica agli utenti.

Esempio:

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

Voglio accedere alle parole target ApplicationDeployment nel mio file .Proj.

Esiste una proprietà a cui posso accedere? Qualche idea su come farlo?

MODIFICA: Non voglio passare anche in una proprietà per ottenerlo.

AGGIORNAMENTO: basato su script di distribuzione utilizzando gli script di MSBuild. Il mio server di build non viene utilizzato per la distribuzione di codice, ma solo per la creazione. Il server di compilazione stesso ha notifiche di compilazione che possono essere attivate.

È stato utile?

Soluzione 2

Ho trovato la risposta!

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

Vorrei dare un parziale credito all'apatico. Non sono sicuro di come farlo.

Altri suggerimenti

Non sono sicuro di come fare esattamente quello che chiedi, ma potresti passare quella stringa usando l'opzione / p?

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

L'unico altro modo in cui posso vederlo è utilizzare una proprietà condizionale in ciascun target e quindi stabilire il primo target da invocare.

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

...
</Target>

Non c'è modo di farlo (di cui sono a conoscenza). MSBuild non ha una proprietà per l'elenco di destinazioni richieste da compilare.

Tuttavia, se trovi un modo, tieni presente che potrebbe non essere un singolo obiettivo, ma un elenco di obiettivi da costruire.

Consiglio di utilizzare un server come CCNET per gestire le esecuzioni di build e le notifiche. Certo, puoi fare cose con il tuo script MSBuild per inviare notifiche, ma quel dominio appartiene al server di compilazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top