2010-12-07 11 views
1

Guten Tag!ASP.NET MVC 2-Anwendung über die Befehlszeilen- und Web.config-Umwandlungen veröffentlichen

Ich habe diese Lösung hier gefunden: VS2010 Web Publish command line version of File System deploy

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe 
.\MyProject.csproj /p:Configuration=Release;DeployOnBuild=True;PackageAsSingleFile=False;outdir=c:\_OuputDir\ 

Aber es scheint, dass Web.config Transformationen nicht durchgeführt werden.

Vielleicht gibt es bessere \ cleaner Möglichkeit, VS2010-Dialogfeld "Web veröffentlichen" zu duplizieren?

Update: Die Antwort, die markiert ist, ist die kürzeste Befehlszeile zum Veröffentlichen, die ich bisher gefunden habe. Web.config Transformationen angewendet werden, aber Verbindungszeichenfolgen unterschiedlich behandelt werden, hier ein von description\workaround

Antwort

1

Diese funktionieren könnte (was ich here gefunden):

msbuild solution.sln /p:Configuration=Release;DeployOnBuild=true;DeployTarget=Package;_PackageTempDir=..\publish 

Allerdings gab es mir den folgenden Fehler, wenn ich versuchte, es auszuführen (was ich immer noch zu beheben bin):

C: \ [Pfad] \ [Config] \ csautoparameterize \ original \ web.config (40): Fehler ASPCONFIG: Es ist ein Fehler, einen Abschnitt zu verwenden, der als allowDefinition = 'MachineToApplication' über die Anwendungsebene hinaus registriert wird. Dieser Fehler kann durch ein virtuelles Verzeichnis verursacht werden, das nicht als Anwendung in IIS konfiguriert ist.

+0

Es funktioniert für mich zu veröffentlichen (das ist die kürzeste und sauberste Möglichkeit, Ausgabe in separaten Ordner), aber Web.config ist nicht transformiert, hier, wie meine Verbindungszeichenfolge nach publish ' ' – artvolk

+0

update: alle meine Transformationen außer Verbindungszeichenfolgen werden verarbeitet !!! Gibt es eine Möglichkeit, es für Verbindungszeichenfolgen zu funktionieren? Es scheint von Entwurf zu sein: http://forums.asp.net/p/1569934/4043217.aspx – artvolk

1

Auszug ist: http://ashwaniksharma.spaces.live.com/Blog/cns!AD160FFA5932F17E!206.entry

MSBuild .\MyProject.csproj /t:TransformWebConfig;/p:Configuration=Release;DeployOnBuild=True;PackageAsSingleFile=False;outdir=c:\_OuputDir\ 
+0

Es sieht aus wie es tun soll, was ich suche, aber ich habe die folgende Meldung und nichts bekommt Änderungen: 'TransformWebConfigCore: Überspringt Ziel" TransformWebConfigCore ", da alle Ausgabedateien in Bezug auf die Eingabedateien aktuell sind. – artvolk

+0

Es scheint, dass die transformierte web.config unter Obj \ \ TransformWebConfig \ in den MVC transformiert wurde App-Ordner, wenn Sie diese com tun mand. Nicht sicher, was dies zusammenhält und das endgültige Paket produziert, wie es in Visual Studio veröffentlicht wird. –

1

Meine Lösung für CCNET mit der Web.config Transformation:

<tasks> 
    <msbuild> 
     <executable>C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable> 
     <workingDirectory>E:\VersionesCC\Trunk_4\SBatz\Gertakariak_Orokorrak\GertakariakMS\Web</workingDirectory> 
     <projectFile>GertakariakMSWeb2.vbproj</projectFile> 
     <targets>Build</targets> 
     <timeout>600</timeout> 
     <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger> 
     <buildArgs> 
      /noconsolelogger /p:Configuration=Release /v:diag 
      /p:DeployOnBuild=true 
      /p:AutoParameterizationWebConfigConnectionStrings=false 
      /p:DeployTarget=Package 
      /p:_PackageTempDir=E:\Aplicaciones\GertakariakMS2\Web 
     </buildArgs> 
     </msbuild> 
</tasks> 
+0

Der Parameter "/ p: AutoParameterizationWebConfigConnectionStrings = false" war neu für mich. Ich habe es der MSBUILD-Kommandozeile hinzugefügt und es hat den Trick gemacht. – Prutswonder