2014-02-24 8 views
11

Das Folgende ist das Profil für meine dev Umgebung veröffentlichen generiert:Wie kann ich mein Veröffentlichungsprofil auf mehrere Standorte verteilen?

<?xml version="1.0" encoding="utf-8"?> 
<!-- 
This file is used by the publish/package process of your Web project. You can customize the behavior of this process 
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121. 
--> 
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <WebPublishMethod>FileSystem</WebPublishMethod> 
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> 
    <LastUsedPlatform>Any CPU</LastUsedPlatform> 
    <SiteUrlToLaunchAfterPublish /> 
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish> 
    <ExcludeApp_Data>False</ExcludeApp_Data> 
    <publishUrl>\\dev\webroot</publishUrl> 
    <DeleteExistingFiles>False</DeleteExistingFiles> 
    </PropertyGroup> 
</Project> 

Was will ich, ich könnte mir vorstellen, zu tun, sehr einfach ist, habe ich einfach eine zusätzliche veröffentlichen URL hinzufügen möchten, wo ich das gleiche Projekt veröffentlichen möchten . Leider konnte ich nichts dazu finden, wie ich das auf einfache Weise machen könnte. Alles deutet darauf hin, dass ich einige komplexe Msdeploy-Lösung oder einfach Fallback auf Skripting implementieren muss (d. H. Ps/batch + robocopy/xcopy), was unerwünscht ist.

ich dachte man einfach so etwas wie tun könnte:

<publishUrl>\\dev\webroot;\\dev2\webroot2</publishUrl> 

oder

<itemGroup> 
<publishUrl>\\dev\webroot;</publishUrl> 
<publishUrl>\\dev2\webroot;</publishUrl> 
</itemGroup> 

Die wichtigste Frage ist: Wie kann ich meine Publizierungsprofil erweitern, um mehr bereitstellen Standorte über FTP oder das Dateisystem?

Im Falle von RTFM Antworten - bitte beachten Sie irgendwo ich kann darüber nachlesen.

UPDATE Wenn es möglich ist, mit FTP mehrere bereitstellen tun würde ich auch in einer solchen Lösung interessiert sein.

+0

Eine Post-Build-Kopie der ursprünglichen Ausgabe wäre hier vorzuziehen. Warum möchten Sie die gesamte Build- und Publishing-Pipeline für beide Standorte ausführen? – gregpakes

+0

Ich möchte nicht mehrere Pfade zum Veröffentlichen von Standorten angeben. Vielleicht war ich unklar. Der Punkt, den ich mache, ist, dass ich, wenn möglich, unnötige Scripting-Hölle und eine komplizierte Bereitstellungskette vermeiden möchte. – Marcus

+0

Was hast du am Ende gemacht? –

Antwort

-1

Ich bin nicht sicher, dass die Veröffentlichungsoption in VS mit dieser Absicht entwickelt wurde. Die einzige Sache, die ich vorschlagen könnte, ist, dass, wenn Ihr Projekt zum ersten Bestimmungsort eingesetzt wird, Sie ein Werkzeug wie robocopy verwenden, um alles in einen neuen Ordner zu kopieren, es ist ziemlich einfach zu verwenden, hier ist ein Beispielbefehlszeilengebrauch:

robocopy <SRCFOLDER> <TGTFOLDER> /E /XO /XF *.config 

rem /E : Copy Subfolders, including Empty Subfolders. 
rem /XO : eXclude Older - if destination file exists and 
      is the same date or newer than  the source - don't overwrite it. 
rem /XF *.config : excludes all .config files from copy operation 
+1

Das ist genau das, was ich versuchte zu vermeiden, wie in meiner Frage beschrieben. – Marcus

0

Ich benutze VS 2012; nicht sicher, welche Version von VS Sie verwenden - aber Sie verwenden Publizierungsprofile, so dass unten funktionieren sollte.

Ich denke, dass Sie einfach ein neues Veröffentlichungsprofil erstellen müssen, das Sie dann für die Verwendung Ihrer zusätzlichen Veröffentlichungs-URL konfigurieren. Scheint einfach, also hoffe ich, dass ich etwas in deiner Frage nicht verpasse. Create New Publish Profile

+3

Soweit ich weiß, erlaubt MSBUILD nicht mehrere Veröffentlichungsprofile als Parameter. Ich möchte automatisieren, nicht manuell gehen und veröffentlichen. Dies ist ein Teil einer größeren Bereitstellungskette. – Marcus