Erstellen von Bereitstellungsskripts für Build-, Bereitstellungs- und Testworkflows

Um die Anwendung mit einem Erstellen-Bereitstellen-Testen-Workflow bereitzustellen, müssen Sie Bereitstellungsskripts erstellen und dem Build hinzufügen. Bereitstellungsskripts sind BAT- oder CMD-Dateien, mit denen Ihr Build auf die Computer in der Lab-Umgebung kopiert wird. Wenn der Build ein Installationspaket umfasst, können Sie die Bereitstellungsskripts auch verwenden, um das Installationspaket auszuführen. Beim Erstellen des Erstellen-Bereitstellen-Testen-Workflows fügen Sie dem Workflow Befehle hinzu, mit denen die Bereitstellungsskripts ausgeführt werden. Beim Ausführen des Workflows führt der Buildcontroller diese Befehle im Arbeitsverzeichnis auf den angegebenen Computern in der Lab-Umgebung aus.

Siehe Erstellen eines Build-, Bereitstellungs- und Testworkflows für eine SCVMM-Umgebung oder Erstellen eines Build-, Bereitstellungs- und Testworkflows für eine Standardumgebung. In diesen Abschnitten wird erläutert, wie Bereitstellungsskripts mit dem Erstellen-Bereitstellen-Testen-Workflow erstellt und verwendet werden:

  • Vorbereiten von Builddateien für die Bereitstellung

  • Schreiben von Bereitstellungsskripts

  • Erstellen von Bereitstellungsskripts

  • Einrichten von Arbeitsverzeichnissen

  • Hinzufügen von Bereitstellungsskripts zum Workflow

Weitere Beispiele finden Sie unter Automatisieren von Systemtests (möglicherweise nur in englischer Sprache).

Anforderungen

  • Visual Studio Ultimate, Visual Studio Premium, Visual Studio Test Professional

Vorbereiten von Builddateien für die Bereitstellung

Die Installationsmethode, die Sie für ihre Anwendung wählen, bestimmt, welche primären Aufgaben Ihre Bereitstellungsskripts ausführen müssen. Das Installieren der Anwendung kann lediglich im Kopieren einer EXE-Datei auf einen Clientcomputer bestehen oder aber das Ausführen eines Bereitstellungspakets umfassen, mit dem Dateien auf mehreren Computern installiert werden. In der folgenden Tabelle werden diese Aufgaben für jeden Bereitstellungtyp beschrieben.

Wichtig

Wenn für die Anwendung Software erforderlich ist, die nicht von Ihren Bereitstellungsskripts installiert und konfiguriert wird, müssen Sie sie vor der Anwendungsbereitstellung manuell installieren, wenn Sie die Computer in der Lab-Umgebung vorbereiten.Wenn Sie eine SCVMM-Umgebung verwenden, die Umgebungsmomentaufnahmen bereitstellt, müssen Sie sicherstellen, dass die für die Momentaufnahmen erforderliche Software installiert ist.

Installationstyp

Beschreibung

Webdienst-Bereitstellungspaket

WarnhinweisVorsicht

Wenn Sie eine Anwendung bereitstellen möchten, die IIS verwendet, muss auf dem IIS-Server in der Lab-Umgebung der Webbereitstellungs-Agent-Dienst konfiguriert sein, bevor Sie die Anwendung bereitstellen.

Die Bereitstellungsskripts müssen die Builddateien und das Bereitstellungspaket auf die Zielcomputer in der Lab-Umgebung kopieren und dann das Bereitstellungspaket ausführen. Um dies zu erreichen, müssen Sie möglicherweise einen Domänennamen, einen Dienstkontonamen und einen TFS-Servernamen als Parameter an das Bereitstellungsskript übergeben. Dieser Installationstyp erfordert normalerweise, dass Sie erforderliche Software wie einen Webserver oder einen Datenbankserver manuell installieren und konfigurieren, bevor Sie die Anwendung bereitstellen. Die Konfiguration der erforderlichen Software kann bestimmte Aufgaben erforderlich machen, die die Anwendungsbereitstellung auf dem Zielcomputer ermöglichen. Wenn die Anwendung z. B. IIS verwendet, muss auf dem IIS-Server in der Lab-Umgebung der Webbereitstellungs-Agent-Dienst konfiguriert sein, bevor Sie die Anwendung bereitstellen.

Builddateien ohne Installationspaket

Die Bereitstellungsskripts müssen die Anwendung und die Builddateien auf die Zielcomputer in der Lab-Umgebung kopieren.

Installationspaket

WarnhinweisVorsicht

Wenn Sie ein Installationspaket mit dem Erstellen-Bereitstellen-Testen-Workflow bereitstellen, müssen die Bereitstellungsskripts jede Benutzereingabe verarbeiten, die beim Ausführen des Installationspakets generiert wird; andernfalls schlägt die Anwendungsbereitstellung fehl.

Die Bereitstellungsskripts müssen das Installationspaket auf die Zielcomputer in der Lab-Umgebung kopieren und das Installationspaket ausführen. Wenn die Bereitstellungsskripts das Installationspaket ausführen, muss dabei sichergestellt, dass eine automatische Installation ausgeführt wird. Erforderliche Benutzereingaben im Rahmen der Installation müssen durch die Bereitstellungsskripts verarbeitet werden. Dies schließt Anmeldeinformationen ein. Wenn die Bereitstellungsskripts beim Ausführen des Installationspakets nicht alle generierten Benutzereingaben verarbeiten, schlägt die Anwendungsbereitstellung fehl. Wenn Sie keine Webanwendung bereitstellen und ein Installationspaket für die Bereitstellung benötigen, empfiehlt es sich, ein InstallShield-Installationspaket zu verwenden. Informationen zu InstallShield finden Sie unter Windows Installer Deployment.

Schreiben von Bereitstellungsskripts

Dies sind die häufigsten Aufgaben, die von den Bereitstellungsskripts ausgeführt werden:

  • Abrufen des Buildpfads auf dem Buildcontroller. Sie können diesen dann dem Bereitstellungsskript als Befehlsargument übergeben.

  • Angeben des Bereitstellungspfads

  • Erstellen des Bereitstellungsverzeichnisses. Sie können dies auch manuell vornehmen, anstatt das Bereitstellungsskript dafür zu verwenden. Wenn Sie eine Umgebungsmomentaufnahme von vor der Bereitstellung für den Workflow verwenden, müssen Sie das Verzeichnis einfach auf den virtuellen Computern in der Momentaufnahme erstellen.

  • Kopieren des Bereitstellungspakets aus dem Buildpfad in den Bereitstellungspfad

  • Ausführen des Bereitstellungspakets im Bereitstellungsverzeichnis

Die folgenden Befehle führen einige der häufigen Aufgaben von Bereitstellungsskripts aus.

REM set build path
set buildlocation=%1

REM set deployment path
set targetdir="C:\deploy"

REM create deployment directory
if not exist %targetdir% (cmd /c mkdir %targetdir%)

REM copy build to the deployment directory
xcopy /c /y /e %buildlocation%\*.* %targetdir%

REM if you are using a deployment package you can run it here, after you copy it to your deployment directory

Erstellen von Bereitstellungsskripts

Nachdem Sie die Bereitstellungsskripts erstellt haben, müssen Sie sie in die Versionskontrolle einchecken und sie konfigurieren, sodass sie in die Buildausgabe kopiert werden. Beim Erstellen der Bereitstellungsskripts müssen Sie zunächst sicherstellen, dass sie im Visual Studio-Projekt gespeichert werden, und nicht nur in der Projektmappe. Sie können dies in Visual Studio festlegen, indem Sie das Bereitstellungsskript im Projektmappen-Explorer auswählen und dann unter Eigenschaften die Einstellung für Ausgabeverzeichnis kopieren in Immer kopieren ändern.

Einrichten von Arbeitsverzeichnissen

Sie können ein Arbeitsverzeichnis für jeden Befehlssatz angeben, den Sie dem Erstellen-Bereitstellen-Testen-Workflow hinzufügen. Wenn Sie ein Arbeitsverzeichnis angeben, führt der Buildcontroller die angegebenen Befehle im Arbeitsverzeichnis jedes Computers aus, der dieser Rolle zugewiesen ist. Wenn Sie beim Hinzufügen von Befehlen zum Workflow zum Erstellen, Bereitstellen und Testen kein Arbeitsverzeichnis angeben, führt der Buildcontroller die Befehle im Standardarbeitsverzeichnis C:\Windows\System32 aus.

Wichtig

Erstellen Sie keine Arbeitsverzeichnisse mithilfe von Befehlen, die Sie dem Erstellen-Bereitstellen-Testen-Workflow hinzufügen; wenn Sie dies tun, werden die Verzeichnisse nicht erstellt, bevor die Bereitstellungsskripts versuchen, Dateien in diese Verzeichnisse zu kopieren.

Wenn Sie ein Arbeitsverzeichnis angeben, müssen Sie sicherstellen, dass das Verzeichnis erstellt wird, bevor die Bereitstellungsskripts Dateien in dieses Verzeichnis kopieren. Erstellen Sie keine Arbeitsverzeichnisse mit den Befehlen, die Sie verwenden, um die Bereitstellungsskripts dem Erstellen-Bereitstellen-Testen-Workflow hinzuzufügen. Wenn Sie dies tun, werden die Verzeichnisse nicht erstellt, bevor die Bereitstellungsskripts versuchen, Dateien in die Verzeichnisse zu kopieren. Um sicherzustellen, dass ein Arbeitsverzeichnis erstellt wird, bevor die Bereitstellungsskripts Dateien in dieses Verzeichnis kopieren, müssen Sie das Verzeichnis auf den Zielcomputern in Ihrer Lab-Umgebung manuell erstellen, oder das Verzeichnis muss von den Bereitstellungsskripts erstellt worden sein, bevor ein Befehl Dateien in das Verzeichnis kopiert.

Hinzufügen von Bereitstellungsskripts zum Workflow

Fügen Sie dem Erstellen-Bereitstellen-Testen-Workflow Windows-Shell-Befehle hinzu, um Ihre Anwendung in der Lab-Umgebung bereitzustellen. Wenn Sie Bereitstellungsskripts verwenden, müssen die Befehle die Bereitstellungsskripts vom Buildcontroller in das Arbeitsverzeichnis der Zielcomputer kopieren und die Bereitstellungsskripts ausführen. Für einfache Anwendungsinstallationen, die nur das Kopieren einiger Dateien in das Arbeitsverzeichnis umfassen, können Sie jedoch auch Shellbefehle im Workflow verwenden, ohne externe Bereitstellungsskripts anzugeben.

Wenn Sie einen Befehl hinzufügen möchten, der von einer Windows-Eingabeaufforderung ausgeführt wird (beispielsweise mkdir) oder eine Batchdatei ausführt, muss der Befehl mit cmd /c beginnen. Beispielsweise kopiert der Befehl cmd /c $(BuildLocation)\copyexe $(BuildLocation), wobei copyexe die Batchdatei "copyexe.bat" ist, eine ausführbare Datei in ein lokales Verzeichnis auf einem virtuellen Computer.

Integrierte Variablen: Wenn Sie diese Befehle Ihrem Erstellen-Bereitstellen-Testen-Workflow hinzufügen, können Sie integrierte Variablen verwenden, um bestimmte Pfade und Computer anzugeben. Sie können diese Variablen auch den Bereitstellungsskripts übergeben.

  • $(BuildLocation)
    Der vollständige Pfad, in dem sich die Builddateien befinden, oder der Ablagespeicherort des Builds – sofern einer in Ihrem Erstellen-Bereitstellen-Testen-Workflow konfiguriert ist. Verwenden Sie diese Variable, um auf die Builddateien zuzugreifen.

  • $(InternalComputerName_<Name des virtuellen Computers>)
    Der Computername für einen virtuellen Computer in einer SCVMM-Umgebung. Verwenden Sie diese Variable, um auf einen Host für virtuelle Computer zuzugreifen, wenn Sie den Computernamen des Hosts nicht kennen. Wenn Sie über ein Bereitstellungsskript zum Einrichten eines Webservers verfügen, für das der Computername erforderlich ist, können Sie diesen als Argument an das Skript übergeben. Lautet der Name des virtuellen Computers für den Webserver beispielsweise VM1 und der Computername MyWebServer, geben Sie $(InternalComputerName_VM1) als Argument für das Skript ein. Hierdurch wird der Wert MyWebServer an das Skript übergeben.

  • $(ComputerName_<Name des virtuellen Computers>)

    Hinweis

    Netzwerkisolation in SCVMM-Umgebungen: Wenn Sie Netzwerkisolation für die SCVMM-Umgebung verwenden, ist der Wert von $(InternalComputerName_<VM Name>) für eine Instanz eines virtuellen Computers in jeder Kopie der Umgebung der gleiche, aber der Wert von $(ComputerName_<VM Name>) ist unterschiedlich.

    Der vollqualifizierte Domänenname des virtuellen Computers. Verwenden Sie diese Variable, um von außerhalb der SCVMM-Umgebung auf einen Computer zuzugreifen. Sie können diese Variable als Argument übergeben, um einen Webserver einzurichten. Lautet der Name des virtuellen Computers für den Webserver beispielsweise "VM1", übergeben Sie dem Bereitstellungsskript $(ComputerName_VM1) als Argument, um auf den vollqualifizierten Domänennamen des virtuellen Computers zuzugreifen.

Siehe auch

Konzepte

Automatische Erstellungs-, Bereitstellungs- und Testworkflows

Weitere Ressourcen

Automatisieren von Systemtests