2017-02-10 3 views
2

ich ein msbuild Skript: Msi.msbuild, die ein Variables.msbuild Projekt importiert:MSBuild Import ein veränderbares Projekt zur Laufzeit

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="CreateInstaller"> 

    <Import Project="$(RedistDir)\Framework\Variables.msbuild" /> 
<Project> 

Die Msi.msbuild ist mehrere Mal in einem anderen msbuild Skript bauen: BuildMsi.msbuild

<Target Name="CreateEnvironmentSpecificInstaller" DependsOnTargets="$(SpecificBuildSteps)"> 
    <Message Text="Write installer to $(OutputDir)" /> 
    <MSBuild Projects="$(RedistDir)\Framework\Msi.msbuild" Targets="CreateBatchScripts" StopOnFirstFailure="true" Properties="Configuration=$(Configuration);" RebaseOutputs="true" /> 
    </Target> 

das Ziel CreateEnvironmentSpecificInstaller wird mehrmals, jedesmal, wenn der Gehalt an Variables.msbuild geändert genannt.

Aber ich sehe, dass nur die ersten Werte von Eigenschaften in Variable für die gesamte Laufzeit verwendet werden, scheint, dass es nicht mehr importiert wird als die erste.

Bitte sagen Sie mir, wie kann ich erzwingen, dass die Variablen wieder importiert werden?

+0

Wie stellen Sie sicher, dass Variables.msbuild geändert wird, wenn Sie es erwarten? Ändern Ihre Skripte die Datei? – wkl

+0

Ja, ich habe ein Skript, um es zu ändern, mit Xml.XslTransform. Direkt vor der Zeile

+0

Führen Sie dies in einer Befehlszeile oder in VisualStudio aus? – wkl

Antwort

0

Danke wkl für die Antwort, basierend auf der Idee in diesem Beitrag, ich versuche, die Variablen-Datei umzubenennen und diese zu importieren, so dass das Zwischenspeichern verhindert wird.