Frage

Ich will get web.config Transformationen lokal arbeiten, aber anscheinend die Transformationen nur auftreten, wenn Implementierungen zu tun.

Weiß jemand, der eine Möglichkeit, das msbuild Ziel „TransformWebConfig“ auszuführen, ohne es den „Wiederaufbau“ Prozess durchlaufen und auch angeben, und Ausgabeverzeichnis, in dem die transformierten web.config ausspucken?

Bearbeiten : Mit Sayed Antwort, habe ich eine .bat Datei, um die Aufgabe für mich zu laufen:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Msbuild.exe "D:\Demo\Transformation.proj" /t:TransformWebConfig 

copy /Y  "D:\Demo\Web.config" "D:\MyProject\Web.config" 

del ""D:\Demo\Web.config"

die „Transformation.proj“ ist eine Kopie von Sayed des Code-Schnipsel in der Antwort unten. Geben Sie einfach die Quelle, Ziel und das Ziel für die Transformation. „: \ Demo D“ Verzeichnis Die neue Datei, in diesem Fall die transformierte „web.config“ wird in der sein. Ich bin einfach zu kopieren es zu meinem Projekt web.config und schließlich zu überschreiben, die erzeugte Datei im „Demo“ Ordner zu löschen.

Auch ich erstellt einen Makro diese Batch-Datei auszuführen und die tranformation für mich ausführen:

Public Module DoTransform
    Sub RunTransformBatchFile()
        Try
          Process.Start("D:\Demo\RunTransform.bat")
        Catch ex As System.Exception
            MsgBox(ex.Message)
        End Try
    End Sub
End Module

Sie können auch eine Schaltfläche auf der Symbolleiste hinzufügen, um diese Stapelverarbeitung auszuführen und / oder eine Tastenkombination zuweisen auszuführen.

War es hilfreich?

Lösung

Wenn Sie die Web-Publishing-Pipeline eine Konfigurationsdatei zu transformieren möchten, ohne dann nur Sie die TransformXML Aufgabe manuell verwenden. Ich habe eine ausführliche Blog-Post auf diesem geschrieben unter http://sedodream.com/2010/ 26.04 / ConfigTransformationsOutsideOfWebAppBuilds.aspx , aber hier sind die hohen Lichter:

<Project ToolsVersion="4.0" DefaultTargets="Demo" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <UsingTask TaskName="TransformXml"
             AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll"/>

    <Target Name="Demo">
        <TransformXml Source="app.config"
                      Transform="Transform.xml"
                      Destination="app.prod.config"/>
    </Target>
</Project>

Hier manuell umwandeln ich die app.config-Datei mit transform.xml Datei und die Zieldatei ist app.prod.config.

Eine Sache, die Du erwähnt war in der Lage zu seiner Transformation lokal zu tun, wenn der App läuft. Der Grund, warum wir nur das auf Paket-Transformation ausführen / veröffentlichen, denn wenn wir web.config selbst dann nächstes Mal, wenn Sie Ihre Anwendung debuggen verwandeln die web.config wieder umgewandelt wird. So zum Beispiel, wenn in Ihrem web.debug.config Sie die Transformation haben einen Wert Config hinzuzufügen, alles ist in Ordnung, das erste Mal, dass hinzufügen, aber dann das nächste Mal Ihren Lauf / debuggen Ihre App wird es wieder hinzukommen. So ist es am besten, das zu vermeiden.

Andere Tipps

Wenn Sie Visual Studio 2015 verwenden, können Sie einfach einen Rechtsklick auf die Transformation der gewünschten Umgebung, und klicken Sie auf „Ansicht Vorschau“ ... Es wird dann die Transformation erzeugen, und Sie können das Kopieren und Einfügen in die normale Web.config-Datei für Debugging-Zwecke. Nur nicht begehen es!

XML-Transformationen Erweiterung

-

Wenn Sie Visual Studio 2013 verwenden, können Sie die SlowCheetah installieren

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