.msi Setup-Projekt (C# Visual Studio 2005)

Hallo.

Ich habe eine Installationsroutine für mein Programm erstellt. Funktioniert auch soweit.

Brauche Hilfe bei zwei Dingen:

  • wie bekomme ich einen Deinstallations-Shortcut in meinen [ProgramFilesFolder][ProductName]-Ordner?

  • wie binde ich die dotnetfx.exe (2.0) so in mein Projekt mit ein, daß diese komplett in der .msi-Installations-Datei ist und bei der Installation mit installiert wird. (besser wäre natürlich wenn erst geprüft wird ob das .NET Framework 2.0 auf dem User-PC installiert ist?)

Gibt es ein Example oder Tutorial???

Andreas

Hallo.

Hi!

Ich habe eine Installationsroutine für mein Programm erstellt.
Funktioniert auch soweit.

Brauche Hilfe bei zwei Dingen:

  • wie bekomme ich einen Deinstallations-Shortcut in meinen
    [ProgramFilesFolder][ProductName]-Ordner?

Du musst letztlich zum Deinstallieren auch den Windows Installer aufrufen, also:
msiexec /x
Die Produkt-ID ist dabei eine GUID, den konkreten Wert in Deinem Fall findest Du in den Eigenschaften Deines Setup-Projekts.

  • wie binde ich die dotnetfx.exe (2.0) so in mein Projekt mit
    ein, daß diese komplett in der .msi-Installations-Datei ist
    und bei der Installation mit installiert wird. (besser wäre
    natürlich wenn erst geprüft wird ob das .NET Framework 2.0 auf
    dem User-PC installiert ist?)

Gar net. Es gibt von MS kein MergeModul für’s .NET Framework, das weiterverteilt werden dürfte.
Suche mal nach „dotnet bootstrapper“, da findest Du (u.a. auch bei MS) eine Anwendung, die das Vorhandensein von .NET prüft, ggf. das Framework und Languagepack installiert und schließlich noch eine weitere MSI-Datei installiert.
Funktioniert für .NET 1.0 und 1.1 recht gut, mit 2.0 hab’ ich’s offen gestanden noch nicht probiert, sollte aber auch gehen.

Gibt es ein Example oder Tutorial???

Andreas

Gruß,
Martin

Hey Martin.

Danke für die Antwort.
Man kann die dotnetfx.exe in ein/das Setup-Projekt einbinden.
(http://blogs.msdn.com/astebner/articles/574618.aspx)
Ich bekomme bloß nicht hin, das überprüft wird, ob auf dem
User-PC schon das Framework 2.0 installiert ist. Wenn ja
dann installiere meine .msi-Datei und wenn nein dann
installiere das Framework 2.0 und dann meine .msi-Datei.

Mfg
Andreas

Hallo nochmal!

Danke für den Link, aber der hat auch keine grundlegend anderen Infos (oder habe ich irgend etwas übersehen?).
Der „normale“ Weg ist nun mal, einen Bootstrapper zu verwenden, der überprüft, ob .NET installiert ist (dazu darf es natürlich keine managed-Anwendung sein) und ggf. dann dotnetfx.exe /q… aufruft.
Wenn dann .NET installiert ist (oder bereits war), dann erst wird Deine eigene MSI-Datei installiert.

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]