Frage

Wer weiß, wie den Namen des TARGET (/ t) von der MSBuild Kommandozeile aufgerufen zu bekommen? Es gibt einige Arten von Zielen, die aufgerufen werden können, und ich möchte in einer Mitteilung an Benutzer diese Eigenschaft verwenden.

Beispiel:

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

Ich möchte Zugriff auf die Zielwörter in meiner .proj Datei ApplicationDeployment.

Gibt es eine Eigenschaft ich zugreifen kann? Jede Ahnung, wie dies zu tun?

EDIT:. Ich will auch nicht haben, um in einer Eigenschaft übergeben, dies zu erhalten

UPDATE: Dies basiert auf Deployment-Skripte mit MSBuild Scripts. Mein Build-Server wird für die Bereitstellung von Code nicht verwendet werden, nur für den Bau. Der Build-Server selbst hat Benachrichtigungen erstellen, die in entschieden werden kann.

War es hilfreich?

Lösung 2

Ich fand die Antwort!

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

Ich möchte einen Teil des Kredits zu apathisch geben. Nicht sicher, wie das zu tun.

Andere Tipps

Ich bin mir nicht sicher, wie genau das zu tun, was Sie fragen, aber könnten Sie diese Zeichenfolge übergeben Sie die Option / p verwenden?

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

Die einzige andere Art, wie ich es zu tun sehen kann, ist eine bedingte Eigenschaft in jedem Ziel zu verwenden, und somit das erste Ziel festzulegen, aufgerufen werden.

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

...
</Target>

Es gibt keine Möglichkeit, dies zu tun (das ist mir bewusst). MSBuild keine Eigenschaft für die Liste der Ziele hat gebeten zu bauen.

Wenn Sie jedoch einen Weg finden, bedenken Sie, dass es nicht ein einziges Ziel sein könnte, sondern eine Liste von Zielen zu bauen.

würde ich empfehlen, einen Server wie CCNET mit Hinrichtungen und Benachrichtigung zu handhaben bauen. Sicher, können Sie die Dinge zu Ihrem MSBuild-Skript tun notificatioms auszusenden, aber das Domain gehört zu den Build-Server.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top