Wie mache ich Internet.config-Transformationen mit Visual Studio Website-Projekte?
Es scheint nicht möglich zu sein, ändern Sie die Build-Konfiguration in Visual Studio 2010 Website-Projekte (im Gegensatz zu Visual Studio Web-Anwendungen), und ändern Sie die Build-Konfiguration ist ein wichtiger Teil der Aktivierung von Web.config-Transformationen (es ist nicht möglich, die Konfiguration zu ändern, nichts außer Debug).
Wie bekomme ich Web.config-Transformationen, die die Arbeit mit Visual Studio 2010 Website-Projekte, wenn es nicht möglich ist, ändern Sie die Build-Konfiguration aus?
InformationsquelleAutor Ryan Shripat | 2011-02-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich einen ziemlich guten blog-Beitrag beschreibt eine Lösung für dieses hier:
http://andrewtwest.com/2010/02/25/using-web-config-transformations-in-web-site-projects/
Kurz gesagt: erstellen Sie ein leeres Projekt (solange es nicht ein weiteres website-Projekt) in einer Lösung, die enthält die website. Das leere Projekt wird Ihnen der Zugang zu msbuild durch seine Projekt-Datei, die Ihnen erlaubt, führen Sie Transformationen auf Ihrer website web.config.
Ja, es ist ziemlich viel saugt, dass Sie zu greifen, zu solch einem hacky-Ansatz zu integrieren, msbuild, oder sogar das web.config-transform-Funktion, mit der website-Projekte. Ich bin auf der Vermeidung von website-Projekten und nutzen web-application-Projekte so viel wie ich kann in die Zukunft.
Hier gilt das gleiche.......
InformationsquelleAutor porusan
Würd ich lieber nicht verwenden, um gesamte Web-Anwendung-Projekt-Lösung out-of-box.
Meine Lösung ist die Verwendung der XmlTransform Aufgabe definiert Microsoft.Web.Publishing.Tasks.dll direkt (diese Aufgabe ist der Kern der WebConfigTransformation)
Auf diese Weise ist es flexibel genug, und die genau das tut, was Sie erwarten, es zu tun.
Zum Beispiel hier ist das WebSiteTransformator.csproj ich verwende für die Umwandlung von web.config.
Hier ist auch ein Beispiel von Flexibilität, das ist unmöglich zu erreichen, mit original WebConfigTransformation: es braucht web.- Vorlage.config, web gilt.$(Konfiguration).config über es und schreibt web.config. Dies ermöglicht es uns, hinzufügen web.config selbst in die ignorieren-Liste in der Quellcodeverwaltung. Es ist immer noch gültig csproj verwiesen werden, die durch die website:
Wenn Ihr website-Projekt enthält .csproj, ich denke, Sie sollten es aus der box. Dies ist immer noch externe Projekt als Abhängigkeit für die website Art-Lösung level website BeforeBuild-Ereignis. Und es funktioniert, ich schwöre:) (Eigentlich ist dies das echte Stück von meinem aktuellen code-Basis, nur mit MyWebSite anstelle von realen Ordner-Namen).
Ich habe gerade herausgefunden, besseren Weg, um die Lösung-wide-build-Ereignisse: MSBuild: Erweiterung der Lösung erstellen
InformationsquelleAutor Andriy K
Ich verwendet einen etwas anderen Ansatz. Immer noch ein bisschen ein hack, aber ich denke, viel einfacher. Dieser arbeitete für mich, aber offensichtlich gibt es eine Menge von verschiedenen Konfigurationen zur Verfügung, also kann ich nicht garantieren, es werde Arbeit für alle. Dieser dreht sich um die Möglichkeit, dass eine website ist in Erster verpackt in Ihren
AppData
Ordner, bevor Sie veröffentlicht werden...Manuell hinzufügen
Web.Release.config
- Datei auf die website und fügen Sie die notwendigen Transformationen, natürlich gibt es keine 'Add Config Transform" - option für websites, damit müssen dies manuell tun. Beispiel Web.Release.config:Innerhalb der
website.publishproj
Datei, sicherzustellen, dass die Konfiguration auf Release festgelegt ist:Fügen Sie die folgenden am Ende der
website.publishproj
(kurz vor</Project>
):InformationsquelleAutor Moo
Wie bereits in Andriy ' s Kommentar oben, Lösung breit build-Ereignisse jeden Fall scheint wie ein sauberer Weg, dies zu tun.
Ich bin das hinzufügen dieses als eine separate Antwort, wie es geht ein wenig verloren in den Kommentar, aber IMHO ist die beste Antwort. Requisiten, um Andriy K und Sayed Ibrahim.
InformationsquelleAutor James
Wenn Sie nicht möchten, benötigen Sie ein Web.- Vorlage.config habe ich verwendet:
Angepasst, von einer Antwort hier.
InformationsquelleAutor Simeon Bartley