In Visual Studio 2010 und höher können Sie jetzt abhängig von der Build-Konfiguration eine Transformation auf Ihre web.config anwenden.
Wenn Sie eine web.config erstellen, können Sie die Datei im Lösungs-Explorer erweitern, und es werden zwei Dateien angezeigt:
- Web.Debug.Config
- Web.Release.Config
Sie enthalten Transformationscode, der verwendet werden kann
- Ändern Sie die Verbindungszeichenfolge
- Entfernen Sie den Debugging-Trace und die Einstellungen
- Registrieren Sie Fehlerseiten
Weitere Informationen finden Sie unter Web.config-Transformationssyntax für die Bereitstellung von Webanwendungsprojekten auf MSDN.
Es ist auch möglich, dieselbe Art der Transformation auf eine Nicht-Webanwendungsdatei anzuwenden, obwohl dies offiziell nicht unterstützt wird app.config
. Weitere Informationen zum Ändern Ihrer Projektdatei, um msbuild eine neue Aufgabe hinzuzufügen, finden Sie im Phil Bolduc-Blog .
Dies ist eine lange anhaltende Anforderung an Visual Studio Uservoice .
Eine Erweiterung für Visual Studio 2010 und höher, " SlowCheetah ", ist verfügbar, um die Erstellung von Transformationen für jede Konfigurationsdatei zu übernehmen. Ab Visual Studio 2017.3 wurde SlowCheetah in die IDE integriert und die Codebasis wird von Microsoft verwaltet. Diese neue Version unterstützt auch die JSON-Transformation.
Pierre-Alain Vigeant
quelle
Web.Debug.Config
und enthältWeb.Release.Config
, müssen Sie möglicherweise mit der rechten Maustaste klickenWeb.Config
und klickenAdd Config Transforms
.Das
<appSettings>
Tag in web.config unterstützt ein Dateiattribut, das eine externe Konfiguration mit einem eigenen Satz von Schlüsseln / Werten lädt. Diese überschreiben alle Einstellungen, die Sie in Ihrer web.config haben, oder fügen sie hinzu.Wir nutzen dies, indem wir unsere web.config zur Installationszeit mit einem Dateiattribut ändern, das der Umgebung entspricht, in der die Site installiert wird. Wir tun dies mit einem Schalter auf unserem Installer.
z.B;
Hinweis:
quelle
restartOnExternalChanges
, das diese Dateien so behandelt, als wären sie web.configs. Quelle: learnable.com/books/…Haben Sie sich Webbereitstellungsprojekte angesehen?
http://www.microsoft.com/downloads/details.aspx?FamilyId=0AA30AE8-C73B-4BDD-BB1B-FE697256C459&displaylang=de
Es gibt auch eine Version für VS2005, wenn Sie nicht auf 2008 sind.
quelle
Ich würde es auch gerne wissen. Dies hilft mir, das Problem einzugrenzen
Ich behalte dann eine connectionStrings.config sowie eine "{host} connectionStrings.config". Es ist immer noch ein Problem, aber wenn Sie dies für Abschnitte tun, die sich in den beiden Umgebungen unterscheiden, können Sie dieselbe web.config bereitstellen und versionieren.
(Und ich benutze übrigens kein VS.)
quelle
Ich verwende ein NAnt Build Script, um es in meinen verschiedenen Umgebungen bereitzustellen. Ich habe meine Konfigurationsdateien über XPath geändert, je nachdem, wo sie bereitgestellt werden, und sie dann mithilfe von Beyond Compare automatisch in diese Umgebung gebracht .
Das Einrichten dauert ein oder zwei Minuten, aber Sie müssen es nur einmal tun. Dann übernehmen Batch-Dateien, während ich noch eine Tasse Kaffee hole. :) :)
Hier ist ein Artikel, den ich darauf gefunden habe.
quelle
In einem Projekt mit 4 Umgebungen (Entwicklung, Test, Staging und Produktion) haben wir ein System entwickelt, bei dem die Anwendung die entsprechende Konfiguration basierend auf dem Computernamen auswählte, auf dem sie bereitgestellt wurde.
Das hat bei uns funktioniert, weil:
In diesem Fall hat es für uns gut funktioniert, aber wahrscheinlich nicht überall.
quelle
Der Konfigurationseditor der Unternehmensbibliothek kann Ihnen dabei helfen. Sie können eine Basiskonfigurationsdatei und anschließend Deltas für jede Umgebung erstellen. Anschließend können Sie die Basiskonfiguration und das Delta zusammenführen, um eine umgebungsspezifische web.config zu erstellen. Schauen Sie sich die Informationen hier an, die Sie besser durch die Informationen führen als ich.
quelle
Sie können es auch zu einem Post-Build-Schritt machen. Richten Sie eine neue Konfiguration ein, die zusätzlich zu Debug und Release "Bereitstellen" lautet, und kopieren Sie dann den Schritt nach dem Erstellen über die richtige web.config.
Wir verwenden für alle unsere Projekte automatisierte Builds, und mit diesen aktualisiert das Build-Skript die Datei web.config, um auf den richtigen Speicherort zu verweisen. Aber das hilft dir nicht, wenn du alles von VS aus machst.
quelle
Dies ist einer der großen Vorteile der Verwendung der machine.config. Bei meinem letzten Job hatten wir Entwicklungs-, Test- und Produktionsumgebungen. Wir könnten die machine.config für Dinge wie Verbindungszeichenfolgen verwenden (zu der entsprechenden SQL-Maschine dev / test / prod).
Dies ist möglicherweise keine Lösung für Sie, wenn Sie keinen Zugriff auf die eigentliche Produktionsmaschine haben (z. B. wenn Sie ein Hosting-Unternehmen auf einem gemeinsam genutzten Host verwenden).
quelle
Sie können auch die Erweiterung "Configuration Transform" verwenden, die genauso funktioniert wie "SlowCheetah".
quelle