Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
von Jason Lee
Wenn Sie ein Webanwendungsprojekt in einer Remoteserverumgebung bereitstellen möchten, besteht die erste Aufgabe darin, das Projekt zu erstellen und ein Webbereitstellungspaket zu generieren. In diesem Thema wird beschrieben, wie der Buildprozess für Webanwendungsprojekte funktioniert. Insbesondere wird folgendes erläutert:
- Wie die Web Publishing Pipeline (WPP) den Buildprozess erweitert, um Bereitstellungsfunktionen einzuschließen.
- So wandelt das Iis-Webbereitstellungstool (Web Deploy) Ihre Webanwendung in ein Bereitstellungspaket um.
- Wie der Build- und Verpackungsprozess funktioniert und welche Dateien erstellt werden.
In Visual Studio 2010 wird der Build- und Bereitstellungsprozess für Webanwendungsprojekte vom WPP unterstützt. Das WPP bietet eine Reihe von Microsoft Build Engine (MSBuild)-Zielen, die die Funktionalität von MSBuild erweitern und die Integration in Web Deploy ermöglichen. In Visual Studio können Sie diese erweiterte Funktionalität auf den Eigenschaftenseiten für Ihr Webanwendungsprojekt sehen. Auf der Seite " Package/Publish" können Sie zusammen mit der Seite " Package/Publish SQL " konfigurieren, wie Ihr Webanwendungsprojekt für die Bereitstellung gepackt wird, wenn der Buildvorgang abgeschlossen ist.
Wie funktioniert das WPP?
Wenn Sie sich die Projektdatei für ein C#-basiertes Webanwendungsprojekt ansehen, können Sie sehen, dass sie zwei .targets-Dateien importiert.
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\
v10.0\WebApplications\Microsoft.WebApplication.targets" />
Die erste Import-Anweisung ist für alle Visual C#-Projekte gemeinsam. Diese Datei, Microsoft.CSharp.targets, enthält Ziele und Aufgaben, die für Visual C# spezifisch sind. Die C#-Compileraufgabe (Csc) wird z. B. hier aufgerufen. Die Datei "Microsoft.CSharp.targets " importiert wiederum die Datei "Microsoft.Common.targets ". Dadurch werden Ziele definiert, die allen Projekten gemeinsam sind, z. B. Build, Neuerstellen, Ausführen, Kompilieren und Bereinigen. Die zweite Import-Anweisung ist spezifisch für Webanwendungsprojekte. Die Datei "Microsoft.WebApplication.targets " importiert wiederum die Datei "Microsoft.Web.Publishing.targets ". Die Datei "Microsoft.Web.Publishing.targets" ist im Wesentlichen das WPP. Sie definiert Ziele wie Package und MSDeployPublish, die Web Deploy aufrufen, um verschiedene Bereitstellungsaufgaben auszuführen.
Um zu verstehen, wie diese zusätzlichen Ziele verwendet werden, öffnen Sie in der Contact Manager-Beispiellösung die Datei Publish.proj , und sehen Sie sich das BuildProjects-Ziel an.
<Target Name="BuildProjects" Condition=" '$(BuildingInTeamBuild)'!='true' ">
<MSBuild Projects="@(ProjectsToBuild)"
Properties="OutDir=$(OutputRoot);
Configuration=$(Configuration);
DeployOnBuild=true;
DeployTarget=Package"
Targets="Build" />
</Target>
Dieses Ziel verwendet die MSBuild-Aufgabe , um verschiedene Projekte zu erstellen. Beachten Sie die Eigenschaften DeployOnBuild und DeployTarget :
- Die DeployOnBuild=true-Eigenschaft bedeutet im Wesentlichen" "Ich möchte ein zusätzliches Ziel ausführen, wenn der Build erfolgreich abgeschlossen ist."
- Die DeployTarget-Eigenschaft identifiziert den Namen des Ziels, das Sie ausführen möchten, wenn die DeployOnBuild-Eigenschaft gleich "true" ist. In diesem Fall geben Sie an, dass MSBuild das Paketziel nach dem Erstellen des Projekts ausführen soll.
Das Paketziel wird in der Datei "Microsoft.Web.Publishing.targets " definiert. Im Wesentlichen übernimmt dieses Ziel die Buildausgabe Ihres Webanwendungsprojekts und wandelt es in ein Webbereitstellungspaket um, das auf einem IIS-Webserver veröffentlicht werden kann.
Hinweis
Um eine Projektdatei (z. B. ContactManager.Mvc.csproj) in Visual Studio 2010 anzuzeigen, müssen Sie das Projekt zuerst aus Ihrer Projektmappe entladen. Klicken Sie im Projektmappen-Explorer-Fenster mit der rechten Maustaste auf den Projektknoten, und klicken Sie dann auf Projekt entladen. Klicken Sie erneut mit der rechten Maustaste auf den Projektknoten, und klicken Sie dann auf Bearbeiten[Projektdatei]). Die Projektdatei wird in ihrem unformatierten XML-Format geöffnet. Denken Sie daran, das Projekt neu zu laden, wenn Sie fertig sind.
Weitere Informationen zu MSBuild-Zielen, -Aufgaben und -Importanweisungen finden Sie unter Grundlegendes zur Projektdatei. Eine ausführlichere Einführung in Projektdateien und das WPP finden Sie unter Inside the Microsoft Build Engine: Using MSBuild and Team Foundation Build by Sayed Ibrahim Hashimi und William Bartholomew, ISBN: 978-0-7356-4524-0.
Was ist ein Webbereitstellungspaket?
Wenn Sie ein Webanwendungsprojekt erstellen und bereitstellen, entweder mithilfe von Visual Studio 2010 oder mithilfe von MSBuild direkt, ist das Endergebnis in der Regel ein Webbereitstellungspaket. Das Webbereitstellungspaket ist eine .zip Datei. Sie enthält alles, was IIS und Web Deploy benötigen, um Ihre Webanwendung neu zu erstellen, einschließlich:
- Die kompilierte Ausgabe Ihrer Webanwendung, einschließlich Inhalt, Ressourcendateien, Konfigurationsdateien, JavaScript- und CSS-Ressourcen (Cascading Stylesheets) usw.
- Assemblys für Ihr Webanwendungsprojekt und für alle referenzierten Projekte in Ihrer Lösung.
- SQL-Skripts zum Generieren von Datenbanken, die Sie mit Ihrer Webanwendung bereitstellen.
Nachdem das Webbereitstellungspaket generiert wurde, können Sie es auf verschiedene Weise auf einem IIS-Webserver veröffentlichen. Sie können sie z. B. remote bereitstellen, indem Sie den Remote-Agent-Dienst web deploy oder den Web Deploy Handler auf dem Zielwebserver verwenden, oder Sie können den IIS-Manager verwenden, um das Paket manuell auf dem Zielwebserver zu importieren. Weitere Informationen zu diesen Bereitstellungsansätzen finden Sie unter Auswählen des richtigen Ansatzes für die Webbereitstellung.
Wie funktioniert der Buildprozess?
Dies zeigt, was passiert, wenn Sie ein Webanwendungsprojekt erstellen und verpacken:
Wenn Sie ein Webanwendungsprojekt erstellen, generiert der Buildprozess eine Datei mit dem Namen [Projektname].SourceManifest.xml. Zusammen mit der Projektdatei und der Buildausgabe teilt diese .SourceManifest.xml Datei Web Deploy mit, was sie in das Webbereitstellungspaket aufnehmen muss. Mithilfe dieser Eingaben generiert Web Deploy ein Webbereitstellungspaket mit dem Namen [Projektname].zip.
Neben dem Webbereitstellungspaket generiert der Buildprozess zwei Dateien, die Ihnen bei der Verwendung des Pakets helfen können:
- Die .deploy.cmd Datei enthält eine Reihe parametrisierter Web Deploy (MSDeploy.exe) Befehle, die Ihr Webbereitstellungspaket auf einem REMOTE-IIS-Webserver veröffentlichen. Das Ausführen der .deploy.cmd Datei mit entsprechenden Parametern bietet in der Regel eine schnellere und einfachere Alternative zum manuellen Erstellen der MSDeploy.exe Befehle selbst.
- Die SetParameters.xml Datei stellt einen Satz von Parameterwerten für den befehl MSDeploy.exe bereit. Zu diesen Werten gehören Eigenschaften wie der Name der IIS-Webanwendung, für die Sie das Paket bereitstellen möchten, die Werte aller in der dateiweb.config definierten Dienstendpunkte und Verbindungszeichenfolgen sowie alle auf den Projekteigenschaftenseiten definierten Bereitstellungseigenschaftswerte.
Die SetParameters.xml Datei ist der Schlüssel zum Verwalten des Bereitstellungsprozesses. Diese Datei wird dynamisch entsprechend dem Inhalt Ihres Webanwendungsprojekts generiert. Wenn Sie ihrer web.config-Datei beispielsweise eine Verbindungszeichenfolge hinzufügen, erkennt der Buildvorgang automatisch die Verbindungszeichenfolge, parametrisiert die Bereitstellung entsprechend, und erstellen Sie einen Eintrag in der SetParameters.xml Datei, damit Sie die Verbindungszeichenfolge im Rahmen des Bereitstellungsprozesses ändern können. Im nächsten Thema , Konfigurieren von Parametern für die Webpaketbereitstellung, wird die Rolle dieser Datei ausführlicher erläutert und die verschiedenen Möglichkeiten beschrieben, wie Sie sie während der Erstellung und Bereitstellung ändern können.
Hinweis
In Visual Studio 2010 unterstützt das WPP das Vorkompilieren der Seiten in einer Webanwendung vor dem Verpacken nicht. Die nächste Version von Visual Studio und WPP enthält die Möglichkeit, eine Webanwendung als Paketoption vorkompilieren zu können.
Fazit
Dieses Thema enthält eine Übersicht über den Build- und Verpackungsprozess für Webanwendungsprojekte in Visual Studio 2010. Es wurde beschrieben, wie Sie mit WPP Web Deploy-Befehle von MSBuild aufrufen können, und es wurde erläutert, wie der Build- und Paketprozess funktioniert.
Nachdem Sie ein Webbereitstellungspaket erstellt haben, besteht der nächste Schritt darin, es bereitzustellen. Weitere Informationen hierzu finden Sie unter Konfigurieren von Parametern für die Webpaketbereitstellung und das Bereitstellen von Webpaketen.
Weiterführende Lektüre
Die nächsten Themen in diesem Lernprogramm, Konfigurieren von Parametern für die Webpaketbereitstellung und das Bereitstellen von Webpaketen, bieten Anleitungen zur Verwendung des von Ihnen erstellten Webpakets. Das letzte Tutorial in dieser Reihe, Advanced Enterprise Web Deployment, enthält Anleitungen zum Anpassen und Beheben des Paketierungsprozesses.
Eine ausführlichere Einführung in Projektdateien und das WPP finden Sie unter Inside the Microsoft Build Engine: Using MSBuild and Team Foundation Build by Sayed Ibrahim Hashimi und William Bartholomew, ISBN: 978-0-7356-4524-0.