Installationsroutine für .NET Programm

Terminator2

Erfahrenes Mitglied
Ich hab da mal eine Frage zu VB.NET 2005.
Und zwar habe ich nun ein Projekt komplett fertig und würde das gerne in einer Setup Routine installieren lassen. Das ist ja in .NET soweit integriert (veröffentlichen), funktioniert nur lieder nicht so richtig gut. Ich würde gerne einen Ordner im Programmpfad (C:\Programme\...) erzeugen und trotzdem die Software in der Registrierung drin haben (Damit man sie über Software in der Systemsteuerung auch deinstallieren kann). Des Weiteren benötigt das Programm ja .NET Framework 2.0, das er sich dann aus dem Internet laden würde. Kann man das nicht direkt alles zu dem Programm packen, damit man eine CD macht und dann das auch läuft?
Ich hab bisher diesen publish Ordner auf einen USB-Stick gepackt und mal auf ein paar anderen PCs versucht zu installieren, das klappt ja fast nie. Also das ist ja auch nicht so toll... Benötigt wird nur die EXE-Datei und ein paar XML Dokumente, sonst nichts.

Hat vlt jemand eine gute Anleitung auf Lager oder ein paar Tipps, damit die Installation so einfach ist wie bei üblichen Programmen?

Danke!
 

Nico Graichen

Erfahrenes Mitglied
Hi

Wenn du Visual Studio nutzt, werden Projekt-Templates zum Verteilen von Anwendungen mitgeliefert. Unter anderem das Setup-Projekt. Mit diesem kannst du festlegen, wo es per Default hininstalliert werden soll, wo es das .NET-Framework beziehen kann uvwm.
Dafür kannst per Rechtsklick auf das Solution-File (im Solution-Explorer) oder über das Datei-Menü über den Eintrag Add new Projekt ein weiteres Projekt der Solution hinzufügen.
 

Terminator2

Erfahrenes Mitglied
Danke ;)

Visual Studio steckt voller Überraschungen, man muss sie nur finden...
Na dann ist das ja sehr gut gelöst, werde mich dann mal damit beschäftigen.
 

Terminator2

Erfahrenes Mitglied
Moin,

Nach langer Zeit ist das Projekt nun fast fertig. Die Setup-Routine ist soweit fertig, es gibt nur noch ein paar Probleme.
Das Programm benötigt Windows Installer 3.1 und .NET Framework 3.5, da ich mittlerweile Visual Studio 2008 verwende.
Die fertige Setup Routine würde sich die Dateien aus dem Internet herunterladen, wenn sie auf dem Zielcomputer noch nicht installiert sind. Das ist aber bei einer nicht vorhandenen Internetverbindung recht schwierig. Daher habe ich mir beides heruntergeladen, jeweils die Vollversion (.NET 197MB und Windows Installer 2,5MB)
Wie kann ich meiner Installationsroutine nun beibringen, dass er die Dateien aus meinem Verzeichnis nehmen soll und nicht herunterladen soll? Und wie muss ich die Dateien benennen?
Das Programm soll zum Schluss auf einer CD verewigt werden und damit auf möglichst jedem handelsüblichen PC laufen.

Des Weiteren bin ich mir nicht sicher, wo ich die zugehörigen Dateien, die ich beispielsweise in den Anwendungsordner kopiere, auf der CD platzieren muss. Das Programm kann die Dateien doch nicht identifizieren, wenn sie vorher in meinen Eigenen Dateien verlinkt waren und auf einmal auf der CD wiederzufinden sein sollten....

Und zuletzt noch die Frage wie ich in das Startmenü parallel zu der Programmverknüpfung eine Deinstallationsroutine anbieten kann. Das Programm sollte sich nicht nur über die Systemsteuerung deinstallieren lassen, wobei es auch noch folgendes Problem gibt: Es ist bereits eine Version installiert, nun soll meine neue Version diese ersetzen (Alte Version entfernen ist bei Setup Routine aktiviert). Jedoch meldet die Setup Routine dann, dass die alte Version erst deinstalliert werden muss, dies aber nicht tut.

Ich hoffe, dass diese Probleme lösbar sind. Vielen Danke im voraus! ;)
 

Quero59

Mitglied
Zunächst mal zu der Nebenfrage: "Es ist bereits eine Version installiert, nun soll meine neue Version diese ersetzen (Alte Version entfernen ist bei Setup Routine aktiviert). Jedoch meldet die Setup Routine dann, dass die alte Version erst deinstalliert werden muss, dies aber nicht tut."

Dies vermeidest du, indem du die Versionsnummer des Setups-Projecst mit jedem Release erhöhst - und auch den Productcode. Letzterer passt sich aber automatisch an, wenn du die entsprechende Abfrage bestätigst. Erhöhst du die Versionsnummer nicht, bleibt nur reparieren und entfernen. Das Setup selbst ist nicht so schlau, erstmal die bereits existierenden Files zu checken und gegebenenfalls upzudaten.

Für den Speicherort der Komponenten (Internet oder Datenträger) gibts auch irgendwo eine Option. Vor Monaten hab ich die mal benutzt, die muss ich erst wieder suchen (wenn ich Zeit dazu finde).
 

Quero59

Mitglied
Habs gefunden, die Speicherort-Optionen findest du so:

- Eigenschaften des Setup-Projects
- Symbol "Eigenschaftenseiten" klicken
- "Erforderliche Komponenten" - Button klicken
- Option zwei wählen: "Erforderliche Komponenten von demselben Speicherort wie Anwendung downloaden"

Du selbst brauchst dann keine Komponenten irgendwo hin zu schieben, das Erstellen des Setups schiebt alles ins Release oder Debug Verzeichnis. Komplett auf die CD damit und fertig.
 
Zuletzt bearbeitet:

Terminator2

Erfahrenes Mitglied
Okay, das klappt ja wunderbar.
Visual Studio hat die Installationsprogramme für .NET und Windows Installer also selber parat. Jedenfalls ist der "Erstellen" Ordner jetzt 240MB groß, es sollte also alles dabei sein.
Nun ist nur noch die Frage, warum in diesem Ordner folgende 2 .exe Dateien vorhanden sind:
Einmal setup.exe mit dem moderneren Setup Symbol von Windows (Produktverpackung im Hintergrund in CD davor) und dann noch Setup-Routine.exe (gleichnamig mit meinem Projekt) mit dem älteren Installations Symbol von Windiws (PC im Hintergrund, Verpackung mit CD im Vordergrund).

Welche davon ist die Richtige und benötige ich beide oder soll ich eine weglassen, wenn ich den Inhalt der Erstellen Ordners auf eine CD brenne.
 

Quero59

Mitglied
Also ich hab nur eine Setup.exe, eine Projektname.MSI und die Unterordner mit den Komponenten.

Edit: Nach den von dir beschriebenen Symbolen müsste es sich bei dir auch um eine MSI-Datei handeln. Das Ding enthält deine ganze Anwendung.
 
Zuletzt bearbeitet:

Terminator2

Erfahrenes Mitglied
Das kann natürlich so sein. Als Typ ist ein Windows Installer Installationspaket angegeben.
Die Datei setup enthält im Gegensatz zur Setup-Routine auch die Installation von .NET etc.
Daher denke ich, dass du mit der msi Datei Recht hast.

Danke für die Hilfe!

Nur noch die Frage mit der Deinstallation. Kann man bei VS2008 eine Funktion einbauen, die eine Deinstallationsroutine auf dem Ziel-PC einrichtet?
 

JensG

Erfahrenes Mitglied
Nur mal so als Anmerkung....
VS 2008 Programme setzen nicht unbedingt das Framework 3.5 voraus.
Das würde ich nur mitliefern wenn ich auch Funktionen aus 3.5 wie LINQ usw.
nutze. Im Normalfall reicht das FW 2.0 und das kann man im Setup einstellen.

Gruß
Jens