MSI Update
Posted 14 February 2005 - 12:10
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.
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...
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.
____________________________________________________
Tutorials.de
The Code Project! General C# Programming
Wichtige Projekte
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.
Stefan Krüger
InstallSite.org twitter facebook
Posted 15 February 2005 - 11:23
Ich danke Dir erstmal für deine Antwort. Diese teils bestätigenden Worte bringen mich erstmal weiter. Jetzt weiss ich wenigstens woran ich bin und muss nicht durchdrehen.
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.
____________________________________________________
Tutorials.de
The Code Project! General C# Programming
Wichtige Projekte
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?
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.
Stefan Krüger
InstallSite.org twitter facebook
Posted 17 February 2005 - 16:17
QUOTE (Stefan Krueger) |
allerdings einfacher mit einem Dialog-Editor als mit Orca |
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.
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.
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!
Gruß, cosmo
Edited by chaosmaker, 17 February 2005 - 16:19.
____________________________________________________
Tutorials.de
The Code Project! General C# Programming
Wichtige Projekte
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.
Posted 23 February 2005 - 18:53
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.
@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.
Gruß, cosmo
____________________________________________________
Tutorials.de
The Code Project! General C# Programming
Wichtige Projekte
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?
Stefan Krüger
InstallSite.org twitter facebook
Posted 02 March 2005 - 14:49
Schön das Du dich wieder gemeldet hast.
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
____________________________________________________
Tutorials.de
The Code Project! General C# Programming
Wichtige Projekte
Posted 02 March 2005 - 15:56
- 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)
Stefan Krüger
InstallSite.org twitter facebook
Posted 03 March 2005 - 10:36
- SecureCustomProperties ?
- Execute-Sequenz ?
Hilfe!, cosmo
____________________________________________________
Tutorials.de
The Code Project! General C# Programming
Wichtige Projekte
Posted 03 March 2005 - 12:18
Stefan Krüger
InstallSite.org twitter facebook
Posted 03 March 2005 - 12:35
Mein Chef hat's probiert, ich hab's probiert. NULL EFFEKT!
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)
MfG, cosmo
Edited by chaosmaker, 03 March 2005 - 12:36.
____________________________________________________
Tutorials.de
The Code Project! General C# Programming
Wichtige Projekte
Posted 03 March 2005 - 13:28
Stefan Krüger
InstallSite.org twitter facebook
Posted 03 March 2005 - 13:59
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 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
____________________________________________________
Tutorials.de
The Code Project! General C# Programming
Wichtige Projekte
Posted 03 March 2005 - 14:22
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.
Stefan Krüger
InstallSite.org twitter facebook
Posted 07 March 2005 - 18:31
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