vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: .NET   |   VB-Versionen: VB2005, VB200807.08.08
MSI-Setup mit Visual Studio 2005/2008

Ziel dieses Workshops ist es, Ihnen die doch etwas komplexe Thematik der MSI Setup Pakete näher zu bringen und aufzuzeigen, wie Sie zu einem bestehenden Projekt ein Setup-Projekt hinzufügen und letztendlich das Setup konfigurieren und erstellen.

Autor:  Roland WutzkeBewertung:  Views:  56.921 

Der nachfolgende Workshop ist nur für Anwender des Visual Studio 2005/08 gedacht, da das Erstellen von MSI-Setup Paketen mit den VB-Express Versionen nicht möglich ist. Die Express Versionen bieten hierfür die „ClickOnce“ Methode an.

Ziel dieses Workshops ist es, Ihnen die doch etwas komplexe Thematik der MSI Setup Pakete näher zu bringen und aufzuzeigen, wie Sie zu einem bestehenden Projekt ein Setup-Projekt hinzufügen und letztendlich das Setup konfigurieren und erstellen.

Dieser Workshop wurde mit VS2008 erstellt und kann genauso gut für VS2005 angewandt werden. Es bestehen lediglich geringfügige Unterschiede zwischen diesen beiden Versionen.

Bevor es mit dem eigentlichen Setup losgeht, benötigen wir natürlich eine Anwendung (auf das Erstellen einer Anwendung werden wir hier nicht eingehen). In unserem Beispiel Projekt haben wir einen kleinen Editor entwickelt.

Schritt 1 – Setup Projekt hinzufügen

Fügen Sie Ihrem Projekt ein weiteres Projekt hinzu. Öffnen Sie hierzu den Menüpunkt „Datei/Hinzufügen/Neues Projekt…“

Im folgenden Dialog wählen Sie auf der linken Seite den Knoten „Andere Projekttypen/Setup und Bereitstellung“ aus. Im rechten Fenster werden nun die zugehörigen Projekttypen angezeigt. Wählen Sie hier die Vorlage „Setup-Projekt“ aus. Nun müssen Sie nur noch einen Namen für Ihr Setup angeben. Sinnvoll ist es hier einen sprechenden Namen anzugeben. Wie in der Abbildung zu sehen ist, haben wir als Namen den Namen des Projekts verwendet und zusätzlich „Setup“ angehängt.

Nachdem Sie den Dialog mit „OK“ bestätigt haben, wird das Setup Projekt dem Projektmappen Explorer hinzugefügt, so dass nun zwei Projekte im Explorer angezeigt werden.

Schritt 2 – Erforderliche Komponenten festlegen

Nachdem das Setup Projekt nun in der IDE angezeigt wird, sollten Sie als erstes die erforderlichen Komponenten für Ihr Setup Projekt festlegen. Dazu müssen Sie die Eigenschaftenseiten des Setup Projekts aufrufen.

TIPP!!! Alle relevanten Einstellungen und Fenster für das Setup erreichen Sie über die Toolbar im Projektmappen-Explorer. Dazu muss allerdings das Setup Projekt im Explorer markiert sein:

Öffnen Sie nun die Eigenschaftenseiten, in dem Sie auf den linken Button in der Toolbar klicken./p>

Belassen Sie alle Voreinstellungen und klicken zunächst auf die Schaltfläche „Erforderliche Komponenten…“.

Im folgenden Dialog legen Sie fest, welche zusätzlich zu installierenden Komponenten Ihrem Setup Paket hinzugefügt werden sollen. Dieser Dialog bezieht sich noch nicht auf Ihr eigentliches Projekt. Dies wird später in einem anderen Dialog hinzugefügt.

Legen Sie in der oberen Liste fest, welche Komponenten Sie zusätzlich installieren möchten. Per Default ist immer der Windows Installer 3.1 und das Framework 3.5 angehakt.

Legen Sie im unteren Bereich fest, von wo die Komponenten nachgeladen werden sollen, falls sie noch nicht auf dem Zielsystem vorhanden sind. Für Standard Setup Pakete empfiehlt sich, die Komponenten automatisch aus dem Internet downloaden zu lassen. Wenn Sie Ihre Anwendung über eine CD verteilen möchten, empfiehlt sich der mittlere Punkt. Für LAN Installationen der untere Punkt. Dabei müssen Sie noch zusätzlich den Speicherort angeben. Bedenken Sie aber, dass Sie dann die Komponenten mit auf die CD, bzw. ins LAN kopieren müssen.

Schritt 3 – Der Dateisystem Editor

Nun kommen wir zu dem Punkt, an dem wir unserem Setup mitteilen, welche Dateien (Assemblies) wir mit unserem Setup verteilen möchten. Öffnen Sie hierzu (falls noch nicht geöffnet) den Dateisystem Editor über die Toolbar im Projektmappen Explorer. Der Editor ähnelt dem bekannten Windows Explorer. Auch hier werden auf der linken Seite die Ordner und auf der rechten Seite die Dateien angezeigt. Standardmäßig werden im Ordner-Bereich bereits die Ordner für die Anwendung, den Desktop und das Startmenü angezeigt. In diese drei Ordner verteilen wir unsere Dateien. Weitere Ordner können Sie hinzufügen, in dem Sie mit einem Rechtsklick das Context-Menü aufrufen und den gewünschten Ordnertyp auswählen.

Bevor wir nun Dateien dem Anwendungsordner hinzufügen, schauen wir uns erst einmal den Speicherort für unsere Dateien an. Markieren Sie hierzu den Anwendungsordner im Dateisystem Editor, so dass das Eigenschaftenfenster die Einstellungen für den Ordner anzeigt.

Die Property „DefaultLocation“ bestimmt den Speicherort für unsere Dateien auf dem Zielsystem. Wie Sie in der Abbildung sehen können, bestimmen Platzhalter die Pfadangabe. Doch woher wissen wir nun, welcher Wert für welchen Platzhalter durch das Setup eingesetzt wird? Die Lösung finden wir im Eigenschaftenfenster unseres Setup Projekts. Also schauen wir uns mal die Setup Projekt Eigenschaften an. Markieren Sie hierzu im Projektmappen Explorer das Setup Projekt, so dass die Eigenschaften angezeigt werden.

Daraus ergibt sich also ein Pfad für unseren Speicherort, der etwa wie folgt lautet:

„C:\Programme\VB-Power.net\NetEditorSetup“.

Unschön…

Ändern Sie auf jeden Fall den Produktnamen auf „NetEditor“ ab, da der Produktname bei der Installation nicht nur für den Speicherort verwendet wird. Wechseln Sie nun zurück zu den Eigenschaften des Anwendungsordner und korrigieren Sie die „DefaultLocation“ Eigenschaft auf einen sinnvollen Pfad – etwa so wie in der folgenden Abbildung angezeigt wird.

Gehen wir nun daran, die Dateien unseres Projektes dem Setup hinzuzufügen. Als erstes müssen wir dem Anwendungsordner mitteilen, welche Dateien hinzugefügt werden sollen. Die IDE bietet hierfür eine einfache und auch sehr effiziente Methode an.

Rechtsklicken Sie auf den „Anwendungsordner“ im Datei Editor um das Context-Menü aufzurufen. Wählen Sie den Menüpunkt „Hinzufügen/Projektausgabe...“.

Im folgenden Dialog wählen Sie die „Primäre Ausgabe“ aus. Durch diese Auswahl werden alle, dem Projekt bekannten Dateien, automatisch dem Anwendungsordner hinzugefügt.

Da unser Projekt nur aus einer ausführbaren Datei (Exe) besteht, hat die IDE natürlich auch nur diese eine Datei hinzugefügt.

Entgegen Ihrer Annahme, dass jetzt der Dateiname der Exe angezeigt wird, trägt der Assistent hier „Primäre Ausgabe von NetEditor (Aktiv)“ ein. Was bedeutet das nun? Hier wird lediglich ein Verweis auf Ihre ausführbare Datei erstellt, so dass immer die aktuell kompilierte Datei genommen wird und dem Setup hinzugefügt wird. Dabei ist es egal, ob Ihr Projekt im Debug- oder Release Modus erstellt wird. Maßgeblich ist, welches gerade die aktive Konfiguration ist.

Anmerkung: Diese Vorgehensweise ist zwar effizient und einfach für unser Setup, man handelt sich aber auch einen Nachteil ein auf dem wir später noch einmal zu Sprechen kommen. Weiterhin müssen Sie wissen, dass bei dieser Vorgehensweise beim Erstellen des Setups (wie ein Setup kompiliert wird, folgt später) automatisch auch Ihr eigentliches Projekt neu kompiliert wird.

Als ordentliche Programmierer statten wir unsere Anwendung natürlich auch mit einem Handbuch aus. Das Handbuch haben wir als PDF-Datei erstellt und ist somit nicht Bestandteil unseres Projektes. Wir müssen also das Handbuch manuell dem Setup hinzufügen.

Öffnen Sie hierzu wieder das Context-Menü des Anwendungsordners und wählen „Hinzufügen/Datei…“ aus. In dem bekannten FileOpen-Dialog selektieren Sie nun Ihr PDF Handbuch. Das Handbuch wird sodann als Datei dem Setup hinzugefügt.

Hinweis: Verwenden Sie in Ihrem Projekt eine Com-Komponente (OCX), wird zwar durch den Assistenten der IDE die Interop Dll automatisch mit ins Setup aufgenommen, jedoch die eigentliche OCX nicht. Diese müssen Sie manuell dem Setup hinzufügen.

Nachdem alle relevanten Dateien dem Anwendungsordner hinzugefügt wurden, gehen wir daran, die Einträge im Startmenü zu Erstellen und ein Icon für den Desktop festzulegen.

Verknüpfungen für das Startmenü:
Das Startmenü wird im Dateisystem Editor durch den Ordner „Programmmenü des Benutzers“ repräsentiert. Dieser Ordner entspricht dem „Programme“ Ordner, der sich unter dem Startmenü verbirgt. Wenn wir also eine Verknüpfung zu unserem Programm direkt in diesen Ordner erstellen würden, würde die Verknüpfung in „Start/Programme“ angezeigt werden. Das wollen wir natürlich nicht, denn unsere Anwendung und das Handbuch sollen schließlich in einem Unterordner unter Programme angezeigt werden. Folglich müssen wir erst einen Unterordner anlegen. Dazu rufen Sie das Context-Menü des „Programmmenü des Benutzers“ auf und wählen „Hinzufügen/Ordner“. Benennen Sie den neuen Ordner nach dem Namen Ihrer Anwendung.

In diesem neuen Ordner erstellen wir nun die Verknüpfungen für unsere Anwendung und unser Handbuch. Öffnen Sie dazu das Context-Menü im linken Dateifenster des Dateisystem Editors und wählen Sie „Neue Verknüpfung erstellen“ aus.

Im folgenden Dialog wechseln Sie zunächst in den „Anwendungsordner“ und selektieren die „Primäre Ausgabe von NetEditor (Aktiv)“.

Wiederholen Sie die letzten beiden Schritte, um ebenfalls eine Verknüpfung für das Handbuch zu erstellen. Sie können nun die Einträge umbenennen, so dass die Verknüpfungen einen sprechenden Namen ergeben.

Eine letzte Sache ist noch zu erledigen – wir müssen noch das Icon für den Startmenü-Eintrag unserer Anwendung festlegen. Dies erledigt der Assistent der IDE leider nicht automatisch für uns. Sinnvollerweise nehmen wir das Icon aus unserer Anwendung.

Markieren Sie hierzu die Anwendungsverknüpfung (NetEditor) um das Eigenschaftenfenster anzuzeigen. Öffnen Sie die Property „Icon“ und wählen „Durchsuchen…“.

Im folgenden, noch leeren Dialog klicken Sie auf „Durchsuchen…“ und wählen im nächsten Dialog den Anwendungsordner aus.

Wechseln Sie zunächst den Dateityp auf „Alle Dateien (*.*)“, um die Einträge im Anwendungsordner anzuzeigen. Selektieren Sie nun den Eintrag „Primäre Ausgabe von NetEditor (Aktiv)“. Die Ansicht wechselt zurück auf den ersten Dialog und zeigt das Icon der Anwendung an.

Selektieren Sie das Icon und bestätigen die Selektion mit „OK“. Damit sind soweit alle relevanten Einstellungen für das Startmenü vorgenommen.

Icon für den Desktop:
Die Vorgehensweise um eine Verknüpfung für den Desktop zu erstellen, erfolgt analog den Arbeitsschritten des Startmenüs aus dem vorherigen Kapitel. Von daher wird dieser Vorgang nicht noch mal separat beschrieben. Es besteht zu den Arbeitsschritten lediglich der Unterschied, dass kein Unterordner für den Desktop erstellt wird.

Somit sind alle nötigen Grundeinstellungen für unser Setup vorgenommen und wir können zum ersten mal unser Setup erstellen und testen.

Setup erstellen und testen
Ein Setup wird grundsätzlich genauso erstellt wie eine Windows Anwendung in der IDE. Sie können das über den Menüpunkt „Erstellen/NetEditorSetup erstellen“ aufrufen, als auch über das Context Menü im Projektmappen Explorer.

Dieser Vorgang kann schon mal ein bisschen dauern – also etwas Geduld. Nachdem das Erstellen erfolgreich durchgeführt wurde, öffnen Sie erneut das Context Menü unseres Setup Projektes im Projektmappen Explorer.

Wie Sie sehen können, sind jetzt die Menüpunkte „Installieren“ und „Deinstallieren“ aktiv. Wählen Sie den Menüpunkt „Installieren“, um das Setup zu starten.

Herzlichen Glückwunsch, Sie haben erfolgreich Ihr Setup erstellt.

Schritt 4 – Der Benutzeroberflächen Editor

Schauen wir uns nun noch an, wie man die Setup typischen Lizenzbedingungen hinzufügen kann. Die Lizenzbedingungen müssen Sie natürlich selber schreiben – hier hilft Ihnen kein Assistent der IDE weiter. Die Lizenzbedingungen müssen Sie als RTF-Dokument speichern (z.B. mit Word) .

Öffnen Sie nun über die ToolBar im Projektmappen Explorer den „Benutzeroberflächen-Editor“.

Rufen Sie das Context Menü im Knoten „Installieren/Starten“ auf und wählen den Menüpunkt „Dialogfeld hinzufügen“ aus.

Selektieren Sie aus der Auswahlliste die Vorlage „Lizenzvertrag“ und bestätigen Sie die Eingabe.

Der Lizenzvertrag wird nun dem Knoten „Starten“ hinzugefügt, steht aber an der letzten Stelle. Vom Ablauf des Setups passt der Lizenzvertrag an dieser Stelle natürlich nicht hin. Verschieben Sie den Lizenzvertrag per Drag & Drop oder über das Context Menü an die zweite Stelle hinter den „Willkommen“ Knoten.

Lassen Sie nun den Knoten „Lizenzvertrag“ selektiert, um die Lizenzdatei im Eigenschaftenfenster festzulegen.

Wählen Sie im Property LicenseFile „Durchsuchen…“ aus. Im folgenden Dialog wechseln Sie zunächst in den Anwendungsordner.

Über die Schaltfläche „Datei hinzufügen…“ selektieren Sie die RTF-Lizenzdatei. Diese wird nun automatisch Ihrem Setup Projekt hinzugefügt.

Wie Sie sehen können ist es recht einfach, Ihrem Setup einen Lizenzvertrag hinzuzufügen. Erstellen Sie nun das Setup erneut und testen Sie es noch einmal aus.

Tipps & Tricks

Nachteile der Nutzung der Primären Projektausgabe:
Wie bereits erwähnt, handelt man sich einen Nachteil ein, wenn man im Dateisystem Editor für die Anwendung die Primäre Projektausgabe wählt. Warum? Wenn Sie Ihr Setup erstellen, wird somit gleichzeitig auch Ihre Anwendung neu erstellt. Man könnte nun sagen, dies ist doch kein Nachteil! Es wird dann zum Nachteil, wenn Sie Ihre Anwendung durch einen Dotfuscator schützen. Der Schutz wird ja wieder aufgehoben, wenn die Anwendung erneut compiliert wird. Was müssen Sie also tun? Verwenden Sie im Setup in dem Fall nicht die Primäre Ausgabe, sondern fügen Sie dem Anwendungsordner direkt das Assembly hinzu. Das geschützte Assembly sollte dabei nicht im Release Ordner der Anwendung liegen.

Weitere Setup-Eigenschaften
Wir können noch etwas „Finetuning“ in den Setup Eigenschaften vornehmen. Legen Sie die Property „InstallAllUsers“ auf True fest. Dadurch wird im Setup der RadioButton per Default mit dieser Eigenschaft vorbelegt.

Die Properties „RemovePreviousVersions“ und „Version“ gehen Hand in Hand, wenn Sie ein Update Ihrer Anwendung und somit ein neues Setup verteilen. Erhöhen Sie in diesem Fall immer die Versionsnummer. Somit wird sichergestellt, dass mit der Installation der neueren Version, die vorherige Installation automatisch deinstalliert, bzw. die neueren Module über die alten installiert werden.

Ich wünsche gutes Gelingen mit dem Erstellen von MSI Setup Paketen.



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Workshops finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.