Verteilung von Visual-Basic-.NET-Programmen

Veröffentlicht: 07. Mrz 2002 | Aktualisiert: 16. Jun 2004

Zusammenfassung: Dieser Artikel bietet eine Einführung in die Weitergabe von Programmen, die Visual Basic .NET erzeugt wurden. Zielgruppe sind Programmierer, die bislang mit Microsoft® Visual Basic® 6.0 gearbeitet haben.

Der Artikel ist in die folgenden Abschnitte unterteilt:

Auf dieser Seite

 Einführung
 Was ist mit dem Paket- und Weitergabe-Assistenten passiert?
 Wie funktioniert die Weitergabe?
 Wo finde ich meine "Setup.exe"-Datei?
 Was benötige ich noch für die Weitergabe?
 Wie kann ich mein Setup anpassen?
 Schlussfolgerung

Einführung

Sie haben Ihre erste Anwendung mit Visual Basic .NET zusammengestellt und möchten sie nun unters Volk bringen? Sie suchen nach dem Paket- und Weitergabe-Assistenten, können ihn jedoch nicht finden? Wie aber geben Sie dann Ihre Anwendung weiter? Keine Sorge - Visual Studio® .NET hat alles, was Sie dazu brauchen. Der Prozess läuft ein wenig anders ab, als Sie es möglicherweise von Visual Basic 6.0 gewohnt sind, doch ist er letztendlich einfacher und wesentlich leistungsfähiger.
Dieser Artikel soll als Einführung in die Konzepte und Prozesse für die Verteilung von Anwendungen und Komponenten dienen, die mit Visual Basic .NET programmiert wurden. Er enthält auch Verweise auf Themen in der Visual-Studio-.NET-Dokumentation, die Ihnen bei der Durchführung zahlreicher Aufgaben behilflich sein werden. Außerdem bietet er einige Tipps, mit deren Hilfe Sie potenzielle Probleme vermeiden können.

 

Was ist mit dem Paket- und Weitergabe-Assistenten passiert?

In Visual Basic 6.0 haben Sie normalerweise den Paket- und Weitergabe-Assistenten verwendet, um eine skriptbasierte Setup.exe-Datei für Ihre Anwendung zu erzeugen. Der Paket- und Weitergabe-Assistent konnte als eigenständiges Tool oder als Add-In für Visual Basic ausgeführt werden, und er ließ sich nur mit Visual Basic-Projekten verwenden.
In Visual Basic .NET verwenden Sie ein Weitergabeprojekt, um einen Installer (MSI-Datei) für Ihre Anwendung zu erstellen. Im Gegensatz zu skriptbasierten Setups verwendet der Installer die Microsoft Windows Installer-Technologie zum Verwalten der Installation. Der Installer führt z.B. einen automatischen Rollback für die Installation aus, wenn etwas schief läuft. Weitere Informationen zur Windows Installer-Technologie finden Sie unter "Introduction to Microsoft Windows Installer".
Während der Paket- und Weitergabe-Assistent ein separates Tool war, stellen Weitergabeprojekte einen Projekttyp in Visual Studio dar. Ein Weitergabeprojekt kann für mehrere Teile einer Anwendung verwendet werden. Diese kann dabei die in verschiedenen Programmiersprachen geschrieben sein. Außerdem ist es möglich, mehrere Weitergabeprojekte in einer einzelnen Lösung zu verwenden. Wie jeder andere Projekttyp werden auch Weitergabeprojekte einer Lösung über die Befehle Neues Projekt oder Projekt hinzufügen im Menü Datei hinzugefügt. Weitere Informationen finden Sie unter "Creating or Adding Deployment Projects".

Tipp: Beim Verteilen von Komponenten innerhalb einer Lösung können Sie Mergemodulprojekte für die einzelnen Komponenten verwenden. Mergemodule verhalten sich wie ein Snapshot einer bestimmten Version Ihrer Komponente und stellen sicher, dass grundsätzlich die richtige Version installiert wird. Weitere Informationen zu Mergemodulen finden Sie unter "Introduction to Merge Modules".

Visual Studio enthält auch einen Setup-Assistenten, der Sie schrittweise in das Erstellen eines Weitergabeprojekts einführt. Selbst wenn Sie Assistenten im Allgemeinen nicht mögen, kann er Ihnen eine gute Vorstellung davon geben, wie das resultierende Weitergabeprojekt aussieht. Der Assistent wird über die Befehle Neues Projekt oder Projekt hinzufügen im Menü Datei gestartet.

 

Wie funktioniert die Weitergabe?

Unter Visual Basic 6.0 war die Weitergabe der Entwicklung nachgeschaltet: Nach dem Erstellen und Debuggen einer Anwendung haben Sie normalerweise den Paket- und Weitergabe-Assistenten ausgeführt. Das Problem dabei: Die Anwendung, die sich auf Ihrem Entwicklungscomputer problemlos ausführen ließ, wurde auf einem anderen Computer oft nicht ordnungsgemäß ausgeführt.
In Visual Basic .NET ist die Weitergabe ein systeminterner Bestandteil des Entwicklungsprozesses. Anstatt bis zum Ende des Prozesses zu warten, sollten Sie Ihrer Lösung zu Beginn ein Weitergabeprojekt hinzufügen, damit sich alle Änderungen an Ihrem Projekt automatisch im Weitergabeprojekt widerspiegeln. Das Erstellen des Weitergabeprojekts und das Testen der Installation sind während der Entwicklung jederzeit möglich. Dank der Deinstallationsfunktionen von Windows Installer können Sie die Anwendung nach dem Testen ganz einfach entfernen.

Schritte im Weitergabeprozess

Die folgenden Schritte beschreiben einen typischen Weitergabeprozess. Nicht alle Schritte sind grundsätzlich erforderlich, und es stehen auch zusätzliche optionale Schritte zur Verfügung.

  1. Fügen Sie Ihrer Lösung ein Weitergabeprojekt hinzu.

  2. Verknüpfen Sie das Weitergabeprojekt mit Ihrem Anwendungsprojekt.

  3. Geben Sie an, wo die jeweiligen Dateien installiert werden.

  4. Wenn Sie Dateien hinzufügen müssen, die nicht in Ihr Projekt kompiliert sind (z.B. Hilfedateien), können Sie sie hinzufügen.

  5. Wenn Ihre Anwendung Microsoft Data Access Components (MDAC) Version 2.6 oder höher verwendet, fügen Sie eine Startkondition hinzu, um eine entsprechende Überprüfung durchzuführen.

  6. Erstellen Sie das Weitergabeprojekt.

  7. Führen Sie die verteilbare .NET-Framework-Datei (Dotnetfx.exe) aus.

  8. Führen Sie die ausführbare Setup-Datei aus, um Ihre Anwendungsdateien auf einem anderen Computer zu installieren.

Der erste Schritt der Weitergabe besteht darin, der Lösung ein oder mehrere Weitergabeprojekte hinzuzufügen. Wenn die Lösung Komponentenprojekte enthält, werden Sie auch ein Mergemodul-Weitergabeprojekt für die einzelnen Komponenten hinzufügen wollen. Weitere Informationen zum Auswählen eines Weitergabeprojekttyps finden Sie unter "Installer vs. Merge Module Recommendations".

Tipp: Sie sollten dem Weitergabeprojekt beim Hinzufügen einen sinnvollen Namen geben. Andernfalls verwendet es einen Standardnamen, wie Setup1. Der Projektname wird in den Dialogfeldern während der Installation als Standardproduktname für die Anwendung verwendet. Wenn Sie also den Anwendungsnamen als Projektnamen verwenden, müssen Sie später keine anderen Namenseigenschaften einstellen.

Wenn Sie Ihrer Lösung ein Weitergabeprojekt hinzufügen, wird automatisch der Dateisystem-Editor geöffnet. Der Dateisystem-Editor ist eine Darstellung des Dateisystems auf einem Zielcomputer. Sie verwenden ihn, um den Installationsort der Dateien anzugeben. In den meisten Fällen werden Sie die Anwendungsdateien im Anwendungsordner oder in von Ihnen erstellten Unterordnern des Anwendungsordners platzieren wollen. Bei der Installation auf einem Zielcomputer werden Dateien aus dem Anwendungsordner im Ordner Programme\Hersteller\Produktname gespeichert, wobei Hersteller dem Firmennamen entspricht, den Sie bei der Installation von Visual Studio verwendet haben, und Produktname den Namen darstellt, den Sie für das Weitergabeprojekt verwendet haben.

Tipp: Sie können die Standardnamen überschreiben, indem Sie die Eigenschaften Manufacturer und ProductName für das Weitergabeprojekt einrichten. Weitere Informationen finden Sie unter "Setting Deployment Project Properties".

Zum Verknüpfen des Weitergabeprojekts mit dem Anwendungsprojekt fügen Sie die Projektausgaben dem entsprechenden Ordner im Dateisystem-Editor hinzu. Was aber sind Projektausgaben? Dabei handelt es sich um die Dateien, die die Visual Studio .NET erzeugt, während es die Anwendung erzeugt. Eine EXE-Datei ist z.B. die primäre Projektausgabe für ein Windows-Anwendungsprojekt und eine DLL-Datei die primäre Ausgabe für ein Komponentenprojekt. Zusätzlich zur primären Ausgabe werden auch beliebige abhängige Dateien als Projektausgaben eingeschlossen.

Anmerkung: Obwohl die Abhängigkeiten für eine Projektausgabe ermittelt werden, gibt es einige Fälle, in denen die abhängigen Dateien nicht in das Setup eingeschlossen werden können. Diese Fälle sollen später in diesem Artikel im Abschnitt Was benötige ich noch für die Verteilung? erörtert werden.

Sie können dem Weitergabeprojekt im Dateisystem-Editor auch Dateien aus dem Anwendungsprojekt hinzufügen. So möchten Sie z.B. Hilfedateien oder HTML-Seiten installieren, die nicht in Ihre Anwendung kompiliert sind. Weitere Informationen zur Verwendung des Dateisystem-Editors finden Sie unter "File Installation Management in Deployment".

Wenn Sie im letzten Schritt das Weitergabeprojekt erzeugen, werden gleichzeitig auch abhängige Projekte generiert, so dass Sie die neuesten Versionen einschließen. Nun können die Dateien auf einem anderen Computer installiert werden.

 

Wo finde ich meine "Setup.exe"-Datei?

Stellt sich nur noch die Frage, wo Sie die MSI-Datei für Ihre Anwendung finden. Das Feld Ausgabedateiname im Dialogfeld Weitergabe-Eigenschaftenseiten bestimmt den Speicherort. Der Standard lautet \Dokumente und Einstellungen\Ihr Anmeldename\Visual Studio-Projekte\Projektname\Projektkonfiguration\Projektname.msi. Der Standard für Projektkonfiguration ist **Debuggen.Projektname gibt den Namen des Weitergabeprojekts an.

Gelten die Standardeinstellungen finden Sie vier weitere Dateien in dem Verzeichnis mit der MSI-Datei: Setup.exe, Setup.ini, Instmsia.exe und Instmsiw.exe. Bei Setup.exe handelt es sich nicht um die altbekannte Setup-Datei, sondern um einen Wrapper für die MSI-Datei und die Windows Installer-Bootstrapperanwendung (kurz Bootstrapper genannt).

Die Bootstrapperanwendung installiert während der Installation der MSI-Datei die richtige Version von Windows Installer, sofern diese noch nicht vorhanden ist. Die Dateien Instmsia und Instmsiw sind die Windows-Installer-Bootstrapperanwendungsdateien - die erste wird für die Installation unter Windows 95, Windows 98 und Windows Millennium Edition verwendet und die zweite für die Installation unter Windows NT. Die Setup.ini-Datei enthält den Speicherort der Bootstrapperanwendungsdateien.

Tipp: Wenn Sie sicher sind, dass die richtige Version von Windows Installer bereits auf allen Computern vorhanden ist, auf denen Ihre Anwendung installiert wird, können Sie die Bootstrapperdateien ausschließen, indem Sie die Bootstrapper-Eigenschaft im Dialogfeld Weitergabe-Eigenschaftenseiten ändern. Weitere Informationen finden Sie unter "Build, Configuration Settings, Deployment Project Properties Dialog Box".

Beim Verteilen der Anwendung sollten auch alle Ausgabedateien verteilt werden. Endbenutzer sollten Ihre Anwendung nicht über die MSI-Datei, sondern durch Ausführen von Setup.exe installieren, um sicherzustellen, dass Windows Installer ggf. installiert wird.

 

Was benötige ich noch für die Weitergabe?

Obwohl Visual Studio beim Festlegen von Abhängigkeiten für Ihre Anwendung gründlich arbeitet, gibt es zwei Fälle, in denen keine Abhängigkeiten in das Setup eingeschlossen werden können: die Common Language Runtime (CLR) und Microsoft Data Access Components (MDAC).

.NET Framework

Für alle Visual-Basic-.NET-Anwendungen und -Komponenten ist es erforderlich, dass das .NET Framework bereits auf dem Computer installiert ist, auf dem die Anwendung oder das Steuerelement ausgeführt wird. Installer, die mit Visual-Studio-Weitergabe erstellt wurden, benötigen ebenfalls das .NET Framework. Daher können Sie das .NET Framework nicht als Teil eines Weitergabeprojekts installieren. Vor der Installation der Anwendung muss das .NET Framework mit Hilfe der verteilbaren .NET-Framework-Datei (Dotnetfx.exe) installiert werden. Weitere Informationen zur Installation der verteilbaren Datei finden Sie im .NET Framework Deployment Guide (in Englisch).

Sie werden möglicherweise bemerken, dass im Ordner Abhängigkeiten entdeckt Ihres Weitergabeprojekts ein Mergemodul für das .NET Framework angezeigt wird, obwohl es nicht verteilt werden kann. Es befindet sich dort nur, damit das Tool Abhängigkeiten zählen kann. Es wird standardmäßig ausgeschlossen (seine Exclude-Eigenschaftist auf TRUE gesetzt). Das Ändern dieser Einstellung löst einen Erstellungsfehler aus.

Außerdem wird Ihrem Weitergabeprojekt automatisch eine Startkondition namens MsiNetAssemblySupport hinzugefügt. Diese Startkondition überprüft das Vorhandensein von .NET Framework zu Beginn der Installation und hält diese an, falls es nicht gefunden wird. Wenn Sie diese Startkondition aus dem Projekt entfernen, wird die Überprüfung nicht durchgeführt, und bei der Installation können unerwartet Fehler auftreten.

Anmerkung: Die Visual-Studio-Dokumentation ist in Bezug auf die Verteilung des .NET Framework fehlerhaft, da nach der Fertigstellung der Dokumentation Änderungen passierten. Im Thema "Walkthrough: Reducing the Size of an Installer by Excluding Merge Modules" (in Englisch) wird das Verfahren zum Ausschließen des .NET-Framework-Mergemoduls beschrieben, das eigentlich standardmäßig ausgeschlossen wird. Außerdem wird hier erläutert, wie eine .NET Framework-Startkondition hinzugefügt wird, was jedoch nicht mehr erforderlich ist.

Microsoft Data Access Components (MDAC)

Jede Visual Basic .NET-Anwendung oder -Komponente, die auf Daten zugreift, ist abhängig von den Microsoft Data Access Components (MDAC) Version 2.6 oder höher. Die Abhängigkeit kann nicht vom Weitergabeprojekt ermittelt werden. Wenn MDAC nicht vor der Installation der Anwendung auf dem Zielcomputer installiert ist, wird die Anwendung zwar ordnungsgemäß installiert, kann jedoch nicht ausgeführt werden. Sie müssen eine Startbedingung hinzufügen, die das Vorhandensein von MDAC überprüft, wenn Ihre Anwendung Datenzugriff einschließt. Weitere Informationen finden Sie unter "Adding a Launch Condition for Microsoft Data Access Components".

 

Wie kann ich mein Setup anpassen?

Zum Anpassen eines Setups in Visual Basic 6.0 musste entweder die Setupskriptdatei oder die vom Assistenten verwendete Setup1.exe-Projektvorlage geändert werden. Beide Prozesse waren nicht besonders einfach und recht fehleranfällig.
In Visual Basic .NET erfolgt das Anpassen eines Setups in einem Weitergabeprojekt mit Hilfe der Weitergabe-Editoren. Neben dem bereits erwähnten Dateisystem-Editor werden Editoren für die folgenden Aufgaben bereitgestellt:

  • Arbeiten mit Registrierungseinstellungen.

  • Definieren von Dateitypen und -zuordnungen.

  • Anpassen der Installationsbenutzeroberfläche.

  • Festlegen von Startkonditionen.

  • Hinzufügen von benutzerdefinierten Aktionen, die erweiterte Installationsfunktionen ausführen können.

Weitere Informationen finden Sie unter "Editors Used in Deployment".

Tipp: Zum schnellen Öffnen und Umschalten zwischen den Weitergabe-Editoren können Sie die Weitergabe-Symbolleiste verwenden, die nach Auswahl eines Weitergabeprojekts oben im Projektmappen-Explorer angezeigt wird.

Verwalten der Dateiinstallation

Der Dateisystem-Editor kann nicht nur zum Festlegen des Speicherortes von Dateien verwendet werden, sondern auch zum Erstellen von Verknüpfungen (auf dem Desktop oder in Ordnern) oder zum Installieren von verschiedenen Dateien basierend auf zur Installationszeit entdeckten Konditionen. Weitere Informationen zum Dateisystem-Editor finden Sie unter "File Installation Management in Deployment".

Festlegen von Registrierungsschlüsseln und -werten

Mit dem Registrierungs-Editor können Sie Registrierungsschlüssel und -werte festlegen, die der Registrierung eines Zielcomputers während der Installation hinzugefügt werden sollen. Im Gegensatz zu den Visual-Basic-6.0-Registrierungsfunktionen, die nur den Zugriff auf eine kleine Teilmenge der Registrierung erlaubten, erhalten Sie mit dem Registrierungs-Editor volle Zugriffs- und Steuerungsmöglichkeiten. Sie können sogar Bedingungen festlegen, um basierend auf Informationen, die während der Installation abgerufen werden, verschiedene Registrierungsschlüssel oder -werte zu setzen. Weitere Informationen zum Registrierungs-Editor finden Sie unter "Registry Settings Management in Deployment".

Zuordnen von Dateitypen

Der Dateityp-Editor ermöglicht es Ihnen, während der Installation auf einem Zielcomputer Dateizuordnungen zu erzeugen. Wenn Ihre Anwendung z.B. eine bestimmte Dateierweiterung für ihre Dateien verwendet, können Sie den Dateityp mit Hilfe des Dateityp-Editors registrieren, so dass jede Datei mit dieser Erweiterung in Ihrer Anwendung geöffnet wird. Weitere Informationen zum Dateityp-Editor finden Sie unter "File Types Management in Deployment".

Anzeigen von zusätzlichen Dialogfeldern

Neben den Standarddialogfeldern, die während der Installation angezeigt werden, können Sie mit Hilfe des Benutzeroberflächen-Editors eine Reihe optionaler Dialogfelder anzeigen. Sie sind in der Lage, Dialogfelder hinzuzufügen oder anzupassen, um Benutzereingaben zu sammeln, eine Seriennummer zu überprüfen, ein Produkt zu registrieren, eine Lizenzvereinbarung anzuzeigen und vieles mehr. Weitere Informationen zum Benutzeroberflächen-Editor finden Sie unter "User Interface Management in Deployment".

Festlegen von Startkonditionen

Startkonditionen bieten die Möglichkeit, einen Zielcomputer zu überprüfen und Bedingungen festzulegen, die erfüllt werden müssen, um die Installation fortzusetzen. Wenn Ihre Anwendung z.B. eine bestimmte Betriebssystemversion erfordert, können Sie eine Startkondition hinzufügen, um sicherzustellen, dass die richtige Version installiert ist. Startbedingungen können so eingestellt werden, dass sie nach beliebigen Dateien, Registrierungswerten oder Komponenten suchen. Außerdem werden verschiedene vordefinierte Startkonditionen für allgemeine Aufgaben bereitgestellt. Weitere Informationen zum Editor für Startbedingungen finden Sie unter "Launch Condition Management in Deployment".

Hinzufügen von erweiterten, benutzerdefinierten Aktionen

Benutzerdefinierte Aktionen stellen vielleicht die leistungsstärkste Möglichkeit zum Anpassen eines Setups dar. Eine benutzerdefinierte Aktion ist lediglich ein Programm, das am Ende der Installation ausgeführt wird. Eine benutzerdefinierte Aktion kann nahezu alles tun, was Sie sich vorstellen können - vom Starten einer Anwendung bis hin zum Einrichten einer Datenbank oder Nachrichtenwarteschlange. Benutzerdefinierte Aktionen können in einer DLL- oder EXE-Datei, einem Skript oder einer .NET-Installationskomponente enthalten sein. Weitere Informationen zum Editor für benutzerdefinierte Aktionen finden Sie unter "Custom Actions Management in Deployment".

 

Schlussfolgerung

Obwohl der Weitergabeprozess in Visual Basic 6.0 anders abläuft, ist er in Visual Basic .NET letztendlich einfacher und wesentlich leistungsstärker. Nehmen Sie sich ein wenig Zeit, und entdecken Sie die Stärken dieses Weitergabeverfahrens - führen Sie den Setup-Assistenten aus, erstellen Sie einige Weitergabeprojekte, experimentieren Sie mit ihren Eigenschaften, und erkunden Sie die Dokumentation.

Tipp: In der Dokumentation finden Sie eine Reihe von schrittweisen Anleitungen, die Sie durch einige anspruchsvollere Aufgaben führen. Weitere Informationen finden Sie unter "Deployment Walkthroughs".