Kann MS Bereitstellen, tun einem Paket und zu transformieren, aber nicht bereitstellen?
Verwendung von msbuild-in .NET 4.0 kann ich erstellen web-Projekt mit dem "Paket" Ziel, und es ist eine schöne Aufgabe des Stellens das Paket in einer zip-Datei. Aber, wenn ich mir die web.config gibt, ist es nicht umgewandelt, es hat "$(ReplacableToken_Web_SiteConnection-Web.config Verbindung String_0)"
Ich kann die "TransformWebConfig" Ziel und es wird das richtige verwandeln, aber nur in seinem eigenen silo.
Kann ich auch ausführen, der "Build" - Ziel und übergeben die "DeployOnBuild=True;DeployTarget=MSDeployPublish" Eigenschaften " und stellen Sie das Paket auf meinem server mit den richtigen web.config-Transformation durchgeführt.
Aber, wenn ich manuell bereitstellen des Pakets an den server, wie Mach ich ein "Paket" mit einem "TransformWebConfig", so dass die zip-Datei hat die Letzte web.config drin?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, überspringen Sie diesen aus geschieht, dann müssen Sie eine Eigenschaft in deinem build. Sie können dies auf zwei Arten tun
Ich würde empfehlen, die #2. Für diesen Fall erstellen Sie eine neue Datei im gleichen Verzeichnis wie die Projekt-Datei mit dem Namen {Projektname}.wpp.Ziele, wo {ProjectName} ist der name des Projekts. Dann in dieser Datei sollten Sie den folgenden Inhalt ein.
In diesem Fall werden Sie bei der Einstellung der Eigenschaft
AutoParameterizationWebConfigConnectionStrings
was sagt das Web-Publishing-Pipeline nicht legen Sie die {} - Platzhalter in die web -.config die connection strings.Die Art, wie wir tun dies, indem Sie das Projekt bauen zu tun, die Transformation vor der Verpackung es werden.
Ziel ist, rufen TransformXml und ist ein Teil von Microsoft.Web.Publishing.Tasks.dll
In Ihre eigenen Ziele, seine
Aber es wird im Standard-VS C# bauen.
So
Funktioniert der trick für uns.
Eingerichtet und die Wege mit der richtigen Artikelgruppe ("Inhalt" wahrscheinlich) und stellen Sie sicher, dass Ziel gefeuert wird vor dem Aufruf von Package in Ihr .csproj, und die build-Ausgabe enthält einen "Web.config", wie normale, mit der rechten transformierten Werte.
Alternativ (wir haben dies für Pakete, die brauchen alles zu sein zu jeder), können Sie diesen trick zu tun, werden ALLE verwandelt, und schließen Sie jeden von Ihnen in das endgültige Paket.
Dann rufen Sie Msdeploy manuell und verwenden Sie Ihre überspringen und ersetzen die Richtlinien (vergessen ist der technische Begriff) nur Ausgabe der Rechte am deploy-Zeit
Vorausgesetzt, Sie haben eine web.usethisone.config im Paket, das aussieht wie