Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

MSI Update


17 replies to this topic

chaosmaker

chaosmaker
  • Members
  • 8 posts

Posted 14 February 2005 - 12:10

Hallo!

Ich bin neu bei euch und stell mich erst mal vor.
Mein Beruf ist Fachinformatiker im Bereich Anwendungsentwicklung. Zudem bin ich ein leidenschaftlicher C#-Entwickler und genieße das Privileg mein Hobby in einem Praktikumsunternehmen im Zentrum von Leipzig "auzuleben".
Desweiteren interssiere ich mich für die Systemintegration, Tuning & DisasterRecovery.

So jetzt zum Thema,

Mein problem liegt darin das ich es nicht hinbekomme einen Installer fertigzustellen der den vorherigen "Updatet". Und das in jeglicher Hinsicht. unsure.gif
Ich verwende das MS VS2003 gänzlich zum Entwickeln meiner Applikationen und erstellen des Installers(SDK Update2.0), zudem hab ich mich in das eBook "Deploying .NET Applications Lifecycle Guide" von MS eingelesen.
Die Vorgehensweisen für das Major- Minor- Upgrades & Small-Updates sind zwar etwas verwirrent formuliert, aber ich bin mir sicher diese verstanden zu haben. (Hab da jetzt keine Probleme mit dem Englisch)
Alle vorgehensweisen hab ich durchgespielt, aber ohne Erfolg! Leider... sad.gif
Immer diese Meldung das die Anwendung schon installiert sei.
Nach der Suche nach einer Alternative fand ich herraus das die Kommandozeilenoption:
CODE
msiexec.exe /i cv-one.msi REINSTALLMODE=vomus REINSTALL=ALL /q

die Aktuelle Installation quasi Repariert. Dafür könnte man also ein Batch-File hernehmen.
Aber das ist nicht Sinn der Sache. Das MSI Sollte doch sowas wie ein Update-Dialog einblenden, oder steht immer Reparieren da?
Hilfe!
Die MSDN hat keine Exemlparische Vorgehensweise zu bieten. Und das erstellen eines MSP's ist anhand der Erklärung eine Katastrophe!
Das stehen Begrife in der MSDN drinnen, die das VS nicht mal kennt. Das Installer SDK ist so besch... dokumentiert das ich nicht mal damit was anfangen kann.
Irgendwas geht immer schief, aber was?

Kann mir da jemand helfen? Währe wirklich für jede Hilfe überaus dankbar!
Auch ein Hinweis zu einem ordentlichen Tutorial würde mir echt weiterhelfen.

MfG, cosmo

Edited by chaosmaker, 14 February 2005 - 13:40.

Wer sein Problem definiert, hat es schon halb gelöst!
____________________________________________________
Tutorials.de
The Code Project! General C# Programming
Wichtige Projekte

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 15 February 2005 - 09:34

QUOTE
Immer diese Meldung das die Anwendung schon installiert sei.

Diese Meldung sollte bei einem Major Upgrade nicht auftreten, sonst hast du was falsch gemacht (ProductCode nicht geändert). Bei Small und Minor Upgrades, die als .msi Datei verteilt werden, ist die einzige Lösung die genannten Kommandozeilen-Parameter. Typischerweise verwendet man eine setup.exe um msiexec mit den entsprechenden Parametern anzustoßen. Welcher Text dann auf dem Dialog angezeigt wird, liegt im Prinzip in deiner Hand. Allerdings unterstützt VS.NET nur einen kleinen Teil der Windows Installer Funktionalität, so dass es damit nicht möglich ist, für Updates einen eigenen Dialog mit entsprechendem Text einzubauen.
Ohne setup.exe geht es nur über einen Patch (.msp). Auch dafür ist aber in VS.NET keine Unterstützung enthalten. Du musst dich also entweder mit der SDK-Dokumentation und den enthaltenen Tools vertraut machen, oder ein "richtiges" Windows Installer Werkzeug beschaffen.

chaosmaker

chaosmaker
  • Members
  • 8 posts

Posted 15 February 2005 - 11:23

Hallo Stefan!

Ich danke Dir erstmal für deine Antwort. Diese teils bestätigenden Worte bringen mich erstmal weiter. smile.gif Jetzt weiss ich wenigstens woran ich bin wink.gif und muss nicht durchdrehen. laugh.gif
Demzufolge werde mich also ausgiebiger mit Orca beschäftigen müssen und melde mich wieder wenn ich immer noch Probleme habe.

QUOTE (Stefan Krueger)
Typischerweise verwendet man eine setup.exe um msiexec mit den entsprechenden Parametern anzustoßen. Welcher Text dann auf dem Dialog angezeigt wird, liegt im Prinzip in deiner Hand.

Meinst Du damit das ich auch Dialoge auch mit der "Setup.ini" steuern kann oder verstehe ich Dich jetzt falsch?

Mal am Rande gefragt:
Was sagst Du zu dem Projekt von Sourceforge Windows Installer XML (WiX)?
Meist Du das währe eine Alternative? Sieht schon mal interessant aus.

MfG, cosmo

Edited by chaosmaker, 15 February 2005 - 12:04.

Wer sein Problem definiert, hat es schon halb gelöst!
____________________________________________________
Tutorials.de
The Code Project! General C# Programming
Wichtige Projekte

msi3

msi3
  • Members
  • 9 posts

Posted 16 February 2005 - 09:11

QUOTE (chaosmaker @ 2005-02-15 11:23)
Mal am Rande gefragt:
Was sagst Du zu dem Projekt von Sourceforge Windows Installer XML (WiX)?
Meist Du das währe eine Alternative? Sieht schon mal interessant aus.

Ich bin zwar nicht Stefan, aber ich finde WiX eine sehr gute Alternative zum sonst üblichen Fummeln mit Orca. Auf Grund der XML-Struktur ist es etwas besser zu verstehen als bei Orca, wo du in Tabelle X was änderst, was dann Auswirkungen auf Tabelle Y hat.
Ebenfalls eine feine Sache von WiX ist, dass man die Benutzeroberfläche sozusagen im Handumdrehen austauschen kann, wenn man mit Fragmenten arbeitet.

Es ist zwar noch nicht 100% perfekt, und eine Konkurrenz zu InstallShield, Wise und Co. wird es vermutlich nie werden, aber trotzdem macht es Spaß. Was glaubst du, wofür ich die Übersetzungen brauche? biggrin.gif

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 16 February 2005 - 20:22

QUOTE
Meinst Du damit das ich auch Dialoge auch mit der "Setup.ini" steuern kann oder verstehe ich Dich jetzt falsch?

Nein, so habe ich das nicht gemeint. Die Dialoge sind in der .msi Datei definiert. Und die kannst du nach Belieben bearbeiten (allerdings einfacher mit einem Dialog-Editor als mit Orca)

Ich halte WiX auch für ein interessantes Tool. Allerdings nicht unbedingt für Anfänger geeignet, da es keine IDE hat. Es gibt zwar ein paar GUI-Projekte, aber die machen glaube ich nicht so große Fortschritte. Insbesondere das Fehlen eines Dialog-Editors ist ein Problem. Manche Leute erstellen Ihre Dialoge mit InstallShield und konvertieren das Projekt dann nach WiX.

chaosmaker

chaosmaker
  • Members
  • 8 posts

Posted 17 February 2005 - 16:17

QUOTE (Stefan Krueger)
allerdings einfacher mit einem Dialog-Editor als mit Orca
Du meinst jetzt aber nicht den User Interface-Editor im VS. Da hab ich das noch nicht gesehen. blink.gif
Sag mir doch bitte mit welchen der MS Tools das hinbekommen ist.

Ich hab das InstallShield mal angetestet, wollte jetzt aber nicht mit Kanoen auf Spatzen schiessen. rolleyes.gif
Lohnt sich im Moment noch nicht. Vor allem weil das Projekt kein Gewinn bringt sondern den Gewinn erleichtern soll.
Das Konvertieren von InstallShield zu Wix hört sich aber interessant an. Das werdich mal versuchen.
//Edit: Kannst mir ja einen Tipp geben wie das geht. smile.gif

Bin jetzt dabei mit Inno Setup und dem dafür konzipierten ScriptMaker das Setup zu erstellen. Ist meiner Meinung einfach und komfortabel zu bedienen und vor allem kostenlos. Danach habe ich gesucht. Es sind eine ganze Menge mehr Funktionen als im Bootstrapper verfübar. Sollte M$ eigentlich zu denken geben.
Wie es da mit den Updates aussieht muss ich noch erforschen.

Danke erstmal für eure Tipps! biggrin.gif

Gruß, cosmo

Edited by chaosmaker, 17 February 2005 - 16:19.

Wer sein Problem definiert, hat es schon halb gelöst!
____________________________________________________
Tutorials.de
The Code Project! General C# Programming
Wichtige Projekte

msi3

msi3
  • Members
  • 9 posts

Posted 17 February 2005 - 18:33

QUOTE (chaosmaker @ 2005-02-17 16:17)
Bin jetzt dabei mit Inno Setup und dem dafür konzipierten ScriptMaker das Setup zu erstellen. Ist meiner Meinung einfach und komfortabel zu bedienen und vor allem kostenlos. Danach habe ich gesucht. Es sind eine ganze Menge mehr Funktionen als im Bootstrapper verfübar. Sollte M$ eigentlich zu denken geben.
Wie es da mit den Updates aussieht muss ich noch erforschen.

Nichts gegen Inno Setup (kenne ich auch), aber gegen den Komfort, den man bei MSI nicht so sieht, kommt es nicht mit. Ich denke da an die Nachinstallation von Features, an die Reparatur, usw. Auch Patches (MSP) sind mit Inno Setup nicht ohne Hilfsprogramme möglich.

Upgrades sind eingeschränkt möglich, wenn du gewisse Regeln befolgst. Okay, das musst du bei MSI auch, wenn du willst, dass die neue Version die alte findet und ggf. rausschmeißt.

chaosmaker

chaosmaker
  • Members
  • 8 posts

Posted 23 February 2005 - 18:53

Ja das mit dem Patchen/Updaten sollte erstmal kein Problem sein. Die alten Dateien werden beim erneuten Setup ersetzt und wenn das Programm danach zum ersten mal startet, lasse ich es auf überflüssige Dateien prüfen.
Klar geht der Aspekt des Patchens/Updatens verloren. Ich hab aber keine Muse mehr zum rumspielen.
Ein ISSI PlugIn ermöglicht sogar richtige MajorUpdates, ist aber leider noch buggy.

Sowieso fuinktioniert der "Spaß" mit dem Produkt- und UpgradeCode beim Bootstrapper nicht. Eine Woche tüfteln sollte reichen. rolleyes.gif

@Stefan Krueger: Wenn Du sagst das es daran liegt, dann zeig mir dochmal BITTE wo ich ein Step by Step Beispiel für SO ein x!*$%§ Update herbekomme.

Das InstallShield X ist ne feine Sache aber wie gesagt ich versuch später mal dessen Setup-Projekte in ein WIX Projekt zu konvertieren.

Vielen dank für eure Teilnahme und eure Meinungen zu Thema. smile.gif

Gruß, cosmo
Wer sein Problem definiert, hat es schon halb gelöst!
____________________________________________________
Tutorials.de
The Code Project! General C# Programming
Wichtige Projekte

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 24 February 2005 - 08:28

QUOTE
@Stefan Krueger: Wenn Du sagst das es daran liegt, dann zeig mir dochmal BITTE wo ich ein Step by Step Beispiel für SO ein x!*$%§ Update herbekomme.

Äh, ich glaub ich hab jetzt den faden verloren. Sprechen wir über InnoSetup, WiX oder InstallShield? Welcher "Spaß" funltioniert nicht, und wofür brauchst du eine Anleitung?

chaosmaker

chaosmaker
  • Members
  • 8 posts

Posted 02 March 2005 - 14:49

Hallo mal wieder!

Schön das Du dich wieder gemeldet hast. smile.gif
Ich hab das Projekt jetzt erstmal mit dem InnoSetup released. Ging leider kein anderer Weg hinein. Das Updaten funktioniert soweit tadellos.

Ich meinte die herangehensweise bei dem Bootstrapper vom VS 2003.
Wir waren soweit gekommen das ein einfaches Update via MSI, NUR mit den genannten Kommandozeilen optionen funktioniert. Ein MSP zu erstellen ist ja mit der MSDN Doku eine Beleidigung schlecht hin.
Ein MajorUpgrade funtioniert NICHT ! Das neue Setup mit einen neuen ProductCode hat keinen einfluss auf die Vorhanden Installation mit gleichem UpgradeCode.

Wenn Du mir diesen Umstand erklären kannst währe ich Dir sehr dankbar. Wenn sich das natürlich absoluter Schwachsinn ist den ich erzähle, weil ich nicht in der Lage bin die signifikanten Kritieren zu erfüllen, bin ich auch mit der Meinung zufrieden.

MfG, cosmo
Wer sein Problem definiert, hat es schon halb gelöst!
____________________________________________________
Tutorials.de
The Code Project! General C# Programming
Wichtige Projekte

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 02 March 2005 - 15:56

Für ein Major Upgrade ist erforderlich:
- geänderter ProductCode
- korrekter Eintrag in Upgrade-Tabelle, mit dem upgrade-Code und einem Public Property
- Das Property muss zusätzlich im SecureCustomProperties Property eingetragen werden
- In der Execute-Sequenz muss die RemoveExistingProducts Action vorhanden sein (und eine evtl. vorhandene Bedingung muss TRUE ergeben)

chaosmaker

chaosmaker
  • Members
  • 8 posts

Posted 03 March 2005 - 10:36

Nochmal, ich erstelle das Setup mit dem VS2003. Wo bitteschön finde ich da das Property
  • SecureCustomProperties ?
Und was ist die
  • Execute-Sequenz ?
Mein VS 2003 kennt diese Begriffe nicht!

Hilfe!, cosmo
Wer sein Problem definiert, hat es schon halb gelöst!
____________________________________________________
Tutorials.de
The Code Project! General C# Programming
Wichtige Projekte

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 03 March 2005 - 12:18

Der sollte das automatisch machen, wenn du bei den Eigenschaften des Setup-Projekts RemovePreviousVersions auf True setzt.

chaosmaker

chaosmaker
  • Members
  • 8 posts

Posted 03 March 2005 - 12:35

rolleyes.gif Ach nee. rolleyes.gif
Mein Chef hat's probiert, ich hab's probiert. NULL EFFEKT! dry.gif

Weisst Du was, ich geb's auf. Wenn Du mir zum Abschluss wenigstens ein ordentliches Buch empfehelen könntest, währe ich Dir dankbar. Aber bitte keine Bücherliste oder sowas. Ein Buch was mir weiterhilft in Sachen:
  • MSI
  • MSI-Updates
  • Orca
  • Bootstrapper (VS 2003)
Danke schon mal!

MfG, cosmo

Edited by chaosmaker, 03 March 2005 - 12:36.

Wer sein Problem definiert, hat es schon halb gelöst!
____________________________________________________
Tutorials.de
The Code Project! General C# Programming
Wichtige Projekte

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 03 March 2005 - 13:28

Dann machst du was falsch, bei anderen funktioniert das.

chaosmaker

chaosmaker
  • Members
  • 8 posts

Posted 03 March 2005 - 13:59

Wenn sich sowieso keiner weiter mit so einem Problem am Thread beteiligt, hast Du wohl in gewisser weise recht. unsure.gif

OK, ich probier es zuhause am WE weiter, in der Hoffung das vielleicht auch irgendwas mit der VS Installation auf meinem Entwicklungsrechner auf Arbeit nicht stimmen könnte und desshalb trotz neuem ProductCode, gleichem UpgradeCode sammt RemovePrviousVersions auf true gestellt, kein MajorUpgrade möglich ist.
Ich versuche auch mal das MSI im Orca zu öffnen ph34r.gif und such mal nach deinen genannten Propertys, ob diese richtig eingestellt sind.

Und empfiehl mir mal bitte ein Buch. Ist da sowas wie "Inside Windows Installer" die Richtige Wahl? Behandelt es auch den Windows Installer 3.0?

Also dann, nächste Woche erstmal.

MfG, cosmo

Wer sein Problem definiert, hat es schon halb gelöst!
____________________________________________________
Tutorials.de
The Code Project! General C# Programming
Wichtige Projekte

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 03 March 2005 - 14:22

Ja, prüfe das Paket mal mit Orca. Und schreib ein Log von der Update-Installation, um zu sehen, was wirklich vor sich geht, warum Windows Installer evtl. meint die alte Version nicht enternen zu müssen usw. In einem verbose Logfile stecken eine Menge Informationen.

Inside Windows Installer ist das einzige deutsche Buch zum Thema MSI. Englische gibt es noch mehrere, die aber meist (auch) speziell auf ein bestimmtes Installationstool eingehen, aber meist auch einen allgemeinen Teil enthalten. Zu MSI mit VS gibts kein Buch, denn VS ist eigentlich auch nur ein sehr rudimentäres MSI Tool. Phil Wisons Buch enthält allerdings VS-Beispiele. Das Buch von Andreas Kerl ist teilweise auch eine Übersetzung des SDK.

MSI 3 ist sehr neu, keines der Bücher enthält wesentliche Informationen darüber. Aber es gibt ein Whitepaper zu den Neuerungen. Die betreffen allerdings hauptsächlich Patches, und die kannst du mit VS ja sowieso nicht machen.

Thomas2222

Thomas2222
  • Members
  • 22 posts

Posted 07 March 2005 - 18:31

@ Chaosmaker

Noch mein Senf dazu: Wir hatten in unsere Firma mit Updates (*.msp Files) solche grossen Probleme das ich für mich persönlich entschieden habe, auch für Updates (egal wie gross) *.msi Pakete zu bauen. Sofern sie keine Daten der bestehendn Installation überschreiben. Wenn doch: Testlauf ob Selfhealing sich nicht einschaltet. Fall doch. Dann komplettes Uninstall des alten Paketes und neues Paket installieren. Das kann man dann in ein Steuerungsskript mit Userdialogen verpacken. Funktioniert einwandfrei und lässt in der Regel keine Zweifel mehr ob nun wirklich alles sauber läuft.

Gruss,
Thomas