2013-01-18 9 views
11

Ich erkannte, dass Web Deployment Projects in Visual Studio 2012 nicht unterstützt werden. Nach dem Lesen this article, habe ich versucht, Publish Profiles zu arbeiten.Veröffentlichen Profil funktioniert nicht beim Erstellen von Website-Projekt

Nach der Installation Visual Studio Web Publish Update war ich in der Lage, Website-Projekte und Web-Anwendungsprojekte mit dem neuen Veröffentlichungsdialog in Visual Studio 2012 zu veröffentlichen.

Da wir TFS 2010 Team Build verwenden, habe ich versucht, veröffentlichen Profil über MSBuild Parameter. Die folgende Anweisung funktioniert jedoch nur, um Webanwendungsprojekte zu veröffentlichen.

MSBuild.exe MyWebs.sln /p:Configuration=Release /p:DeployOnBuild=true;PublishProfile=DeployToDirectory.pubxml 

Wenn ich versuche, Website-Projekte zu veröffentlichen passiert nichts. Das Veröffentlichungsprofil meiner Website-Projekte funktioniert nur mit dem neuen Veröffentlichungsdialog in Visual Studio 2012, aber nicht beim Aufruf MSBuild.

Irgendeine Idee?

+1

Können Sie versuchen, VisualStudioVersion = 11.0 zur Eigenschaftsliste hinzuzufügen? Wenn das nicht funktioniert, wenn Sie mir ein ausführliches Protokoll schicken können, kann ich Ihnen helfen. Meine Emailadresse ist sayedha [at] {MicrosoftDOTcom}. Weitere Informationen zu VisualStudioVersion finden Sie unter http://sedodream.com/2012/08/19/VisualStudioProjectCompatibilityAndVisualStudioVersion.aspx. –

+0

Okay, jetzt habe ich das gleiche Problem, außer dass ich bemerke, dass die Build-Zusammenfassung besagt, dass es das Veröffentlichungsprofil-XML nicht finden kann, wo es es auf dem Build-Server erwartet.Wenn ich an diesen Ort gehe, finde ich die ALTE VERSION (anderer Name), aber nicht das neue Veröffentlichungsprofil. Irgendeine Ahnung, warum der Alte immer wieder auftaucht? Ich habe es aus der Lösung und dem Dateisystem gelöscht. – Ian

+0

@Ian - nicht sicher, ob das hilft, aber ich habe einen Fehler gefunden (ich denke), wo Msbuild für Ihr Veröffentlichungsprofil an der falschen Stelle suchen wird. Versuchen Sie, die ".pubxml" aus dem PublishProfile-Argument zu entfernen. Bitte sehen Sie hier für weitere Informationen: http://discens.blogspot.co.uk/2013/02/msbuild-publish-profiles-and-web-site.html – gregpakes

Antwort

5

Ich habe etwa 3 Wochen damit verbracht, in meiner eigenen Umgebung zu ringen und denke, dass ich eine Lösung habe.

Ich denke, das Problem ist, dass die Datei website.publishproj nie wirklich gebaut wird, wenn Sie die Lösung übergeben. Ich habe es geschafft, dies zu beheben, indem Sie folgendermaßen vorgehen:

  1. Stellen Sie sicher, dass Sie das neue Update ASP.Net und Tools 2012.2 verwenden. Download Here.
  2. Erstellen Sie eine Datei neben der Lösungsdatei namens after.MyWebs.sln.targets. Diese Datei sollte wie folgt aussehen:

    <!--?xml version="1.0" encoding="utf-8"?--> 
    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
        <Target Name="Deploy Website" AfterTargets="Build"> 
         <Message Text="Starting Website deployment" Importance="high"> 
         </Message> 
         <MSBuild Projects="$(MSBuildProjectDirectory)\MyWebs\website.publishproj" 
         BuildInParallel="true" /> 
        </Target> 
    </Project> 
    

Was das bedeutet ist, dass, wenn MSBuild beginnt die Lösungsdatei erstellen, es eine MSBuild-Datei im Speicher tatsächlich schafft mit der Erweiterung metaproj. Es gibt Möglichkeiten, MSBuild dazu zu bringen, diese Datei auf dem Datenträger zu speichern, damit Sie sie überprüfen können, aber das ist leicht auf Google zu finden. Die in Schritt eins erstellte Datei wird in die Datei metaproj eingefügt und nach dem Build ausgeführt.

Dies war der einzige Weg, wie ich die neuen Veröffentlichungsprofile erhalten konnte, um mir die Ausgabe zu geben, die ich mit den alten Web Deployment Projects bekommen habe.

Wort der Warnung: Wenn Sie dies in einem TFS verwenden möchten bauen, dann in diesem Szenario erhalten Sie einen _PublishedWebsites Ordner in der Ablegestelle unabhängig von der PublishUrl Sie in der pubxml Datei angeben bekommen. Das versuche ich zu lösen, aber bisher habe ich nicht viel Freude.

1

Ich hatte genau das gleiche Problem wie oben. Ich habe folgenden Schlüssel gelöscht und der automatische Build hat gut funktioniert.

**<Content Include="website.publishproj" />** 
Verwandte Themen