[Tutorial]Setup erstellen mit Visual Studio
Bot_interesierter hat mir den Tipp gegeben, ich sollte doch mal ein Tutorial schreiben wie man ein Setup unter Visual Studio erstellt. Da es hin und wieder zu Problem bei MFC kommen kann und es unter Umständen nicht auf allen PCs läuft. Und da schafft so ein Setup abhilfe. Außerdem ist es wohl für den ein oder anderen Interessant, der vielleicht auch etwas größere Anwendungen schreibt und diese schön in einem Setup verpacken will.
Bot_interesierter hat mir den Tipp gegeben, ich sollte doch mal ein Tutorial schreiben wie man ein Setup unter Visual Studio erstellt. Da es hin und wieder zu Problem bei MFC kommen kann und es unter Umständen nicht auf allen PCs läuft. Und da schafft so ein Setup abhilfe. Außerdem ist es wohl für den ein oder anderen Interessant, der vielleicht auch etwas größere Anwendungen schreibt und diese schön in einem Setup verpacken will.
#Inhalt:
[-]Setup hinzufügen
[-]Komponenten Auswählen
[-]Einstellungen
[-]Startmenü und Desktopverknüpfung
[-]Benutzeroberfläche
[-]Ende
[-]Voraussetzungen & Programme
Voraussetzungen:
- Kenntnisse im Umgang mit Visual Studio
Programme:
- Visual Studio 2005 oder höher
[-]Setup erstellen
Als erstes öffnen wir unser Projekt wo wir unsere Anwendung Programmiert haben. In diesem Fall ist es bei mir der Solitär Hack den ich in diesem Tutorial gemacht habe: .
Nachdem wir unser Projekt geöffnet haben, klicken wir auf Datei -> Hinzufügen -> Neues Projekt.
Unter "Setup und Bereitstellung" wählen wir "Setup-Projekt" und geben diesen einen Namen.
Somit haben wir nun unserem Solitär Hack Projekt noch ein Setup Porjekt hinzugefügt.
[-]Komponenten Auswählen
Dann machen wir einen Rechtsklick auf Setup in unserem Projektfenster und gehen auf Eigenschaften. Dann öffnet sich ein PopUp und dort gehen wir auf Erforderliche Komponenten.
So und nun sollten wir wissen was wir brauchen.
Standardmäßig ist normalerweise nur .NET Framework ausgewählt.
So an dieser Stelle gestalte ich es mal etwas allgemeiner. Es kommt natürlich drauf an wie Ihr Programmiert. In diesem Fall haben wir ja in MFC Programmiert mit Laufzeitbibliothek. Oftmals kann dein euer MFC Programm Probleme machen wenn auf anderen PC keine Laufzeitbibliothek installiert ist. Ist aber auch nicht immer der Fall. Ich hatte bisher noch keine Probleme damit.
Aber sicher ist sicher und wir wählen auch die Laufzeitbibliothek mit aus. Und dann wählen wir den Windows Installer aus. Solang ihr nicht vorhabt euer Programm unter Windows 95 oder 98 zu installieren wählt ihr den 3.1 Installer aus :P
Dann kommen wir zu dem Punkt "Erforderliche Komponenten ...". Grundsätzlich würde ich sagen von der Webseite des Herstellers laden.
Außer ihr wollt, z.B. eine CD erstellen für euer Progamm, da könnt ihr auch die 2te Option wählen.
Nachdem wir das haben Klicken wir auf Ok.
[-]Einstellungen
Dann schauen wir uns mal das Dateisystem an. Wir haben dort einen
Anwendungsordner
Desktop des Benutzers
Programmmenü des Benutzers
Als erstes wählen wir Anwendungsordner aus.
Und schauen und dann die Eigenschaften an:
Unter DefaultLocation haben wir den Pfad stehen, wohin das Programm standard mäßig Installiert werden soll.
[ProgramFilesFolder][Manufacturer]\[ProductName]
Wenn wir nun wieder in unserem Projektmappen Explorer auf Setup klicken und uns von dem ganzen Setup Projekt die Eigenschaften anschauen können wir noch einiges einstellen:
Wir haben einmal den Author. Dort haben wir Standardfirmenname stehen. Das ändern wir in was auch immer Euren Namen oder Nick o.Ä.
Dann InstallAllUsers. Das ist dann wieder eure Entscheidung wie ihr das macht. Die Standardeinstellung ist auf false, das heißt wenn ihr das Setup später Startet habt ihr unten 2 Radio Buttons die Abfragen ob ihr das Programm nur für den aktuellen Benutzter oder alle Benutzer installiert werden soll.
Ich stell das einfach mal auf InstallAllUsers true.
Manufacturer, da kommt z.B. der Firmenname hin.
Dann haben wir noch RemovePreviousVersion. Diese Option deinstalliert z.B. bei einem Update die alte Version. Bei einem Update wird die Version automatisch erhöht.
Das ist aber auch wieder eure entscheidung. Wollt ihr das sich ein User euer Programm mehrmals in verschiedenen Versionen installieren kann, oder soll beim Installieren der aktuellen Version die alte gelöscht werden ?
Ich stelle es auf true!
Unter ProductName könnt ihr den Namen des "Produktes" ändern. Diese Parameter wirken sich auf den späteren Path aus. Bei mir ist jetzt als Standard Setup als ProductName. Finde ich aber recht doof wenn bei mir unter Programme Setup steht.
Also änder ich es in "SolHack"
Den Rest könnt ihr so lassen.
Aber wir waren vorhin ja beim Path. Wir erinnern uns:
[ProgramFilesFolder][Manufacturer]\[ProductName]
Das heißt unsere Verzeichnisstruktur würde so aussehen:
C:\Programme\EureFirma\EuerProgram\
in meinem Fall wäre das:
C:\Programme\Adroxxx-Tools\SolHack\
Diese Struktur wird oft bei Spielen verwendet. Ist aber auch wiedermal eure entscheidung
Ich persönlich habe keine Firma. Und bevor ich mir irgendeinen dummen Namen ausdenke, lösch ich es lieber.
Also ändern wir die DefaultLocation in
[ProgramFilesFolder]\[ProductName]
Somit sieht unser Pfad wiefolgt aus:
C:\Programme\SolHack\
Viel besser
Jetzt haben wir eine schöne Ordnerstruktur, aber unser Setup weiß noch nicht was es Installieren soll.
Also machen wir einen Rechtsklick auf den Anwendungsordner und gehen auf Hinzufügen -> Projektausgabe.
Dort wählen wir dann Primäre Ausgabe und die Konfiguration ändern wir von Aktiv in Release.
So dazu muss ich jetzt aber noch etwas schreiben.
Einmal zur Primären Ausgabe und zur Konfiguration.
Die Primäre Ausgabe zu wählen ist der einfachste Weg. Was ihr auch in der Regel benutzten könnt / solltet. Aber falls ihr eure Anwendung.exe verschlüsselt oder packt, sprich mit UPX oder sonst was packt habt ihr ein Problem. Weil beim erstellen des Setups wird unsere Anwendung auch mitkompeliert. Sprich ihr habt keinen Zwischenschritt um die exe zu packen.
Falls ihr also eure exe vorher schützten wollt, Kompeliert ihr euer Projekt als Release, packt es und beim erstellen des Setups, klickt nicht
auf Hinzufügen -> Projektausgabe, sondern auf
Hinzufügen -> Assembly. Und dann auf Durchsuchen.
Das zweite war die Konfiguration. Ich würde Release direkt wählen, weil wie gesagt eure Anwendung mitkompeliert wird. Und es passiert schnell mal das man das Setup als Debug Kompeliert. Und die Debug Anwendung läuft nur auf eurem PC! Und damit ihr nicht ausversehen ein Debug Setup erstellt, legt direkt fest das es als Relase Kompeliert werden soll.
Falls ihr jetzt noch andere Dateien habt, die nicht im Projekt miterstellt werden, wie z.B. fertige DLLs oder auch z.B. ein Handbuch oder eine ReadMe, könnt ihr wieder einen Rechtsklick auf Anwendungsordner machen und Hinzufügen -> Datei wählen.
[-]Startmenü und Desktopverknüpfung
Wollen wir nun das unser Programm auch im Programmmenü des Benutzers auftaucht? Sprich Start -> Programme ?
Das nehme ich mal an :P
Dann machen wir einen Rechtsklick auf "Programmmenü des Benutzers" und gehen auf Hinzufügen -> Ordner.
Dann bennent ihr ihn so um, wie ihr ihn im Startmenü haben wollt.
In meinem Fall nenne ich den Ordner SolHack
Dann machen wir einen Rechtsklick und gehen auf Neue Verknüpfung erstellen.
Dort gehen wir in den Anwendungsordner und wählen unsere Primäre ausgabe aus.
Falls ihr noch ein Handbuch, Readme o.Ä. habt, was ihr auch vom Startmenü aus aufrufen wollt, könnt ihr es so auch noch hinzufügen.
Dann klicken wir auf Ok. Und können die Verknüpfung noch Umbenennen. Ich habe sie in SolHack benannt.
Falls ihr eine Desktop Verknüpfung haben wollt, fügt ihr auch wieder eine neue Verknpüfung in den Ordner "Desktop des Benutzers" hinzu. Aber diesmal ohne Unterordner. Ihr wöllt ja keinen Ordner auf eurem Desktop sondern diekt die Verknüpfung.
Jetzt müssen wir noch ein Icon hinzufügen das im Startmenü angezeigt wird.
Daszu gehen wir in den Ordner wo die Verknüpfung ist, wählen die Verknpüfung aus und bei Icon klicken wir auf Durchsuchen
Dann gehen wir auf Durchsuchen gehen in den Anwendungsordner, stellen den Dateityp auf Alle Dateien (*.*)
und wählen die Primäre Ausgabe aus. Somit haben wir das Icon übernommen was wir auch in unserem Projekt festgelegt haben. Ihr könnt aber auch ein anderes icon nehmen.
Dann wählen wir unser Icon aus und klicken auf Ok.
Das gleiche machen wir auch bei der Desktopverknüpfung.
[-]Benutzeroberfläche
Wir können nun auch noch die Benutzeroberfläche von unserem Setup ändern / erweitern. Dazu machen wir im Projektmappen-Explorer einen Rechtsklick auf das Setup Projekt und gehen auf Ansicht -> Benutzeroberfläche
Und die Struktur sieht so aus:
Nun können wir z.B. einen Splash hinzufügen. Oder einen Lizensvertrag / AGBs. Und auch die aktuellen Einstellungen ändern.
Wenn wir z.B. auf Willkommen klicken und dann Einstellungen können wir die Banner Bitmap einstellen. Das ist ein kleiner Banner der bei der Installation oben Rechts angezeigt wird.
Außerdem können wir das Copyright Warning oder den Willkommenstext ändern.
Aber wir wollten ja einen Lizensvertrag einfügen. Ist z.B. wir unsere Kommerziellen Bot schreiber interessant. Wer das nicht braucht, überspringt diesen Punkt und geht ans Ende.
Wir machen also einen Rechtsklick auf Starten und Dialog hinzufügen.
Nun haben wir da schon einige Vorgaben. Wir scrollen etwas runter und wählen Lizensvertrag aus.
Dann haben wir in unserer Struktur eine Form für den Lizensvertag. Mit einem Rechtsklick da drauf und "Nach Oben" verschieben wir den Lizensvertrag unter den Willkommens Form. Das ist die Reihenfolge wie die Forms aufgerufen werden.
Also kommt dann zuerst der Willkommensbildschirm.
Dann unsere Lizensvereinbarung wo der Benutzer erst zustimmen muss. Dann geht es weiter, Pfad auswählen, Bestätigen usw.
Dann wählen wir den Lizensvertrag aus:
Und unter Einstellungen gehen wir bei LicensFile auf Durchsuchen:
Dann gehen wir in den Anwendungsordner und fügen eine Datei hinzu. Wir suchen unseren Lizensvertrag / AGBs ( im RTF Format )und fügen diese hinzu.
[-]Ende
Wenn wir nun alles Fertig haben klicken wir auf Setup und Erstellen.
Somit haben wir unser Erstes Setup erstellt.
Herzlichen Glückwunsch.
Wie man sieht, ist es eigentlich gar nicht so schwer :P Falls ihr Fehler findet oder Anmerkungen habt, schreibt es. Es ist immerhin 2 Uhr nachts und da schleichen sich oft Fehler ein :P