Entwickler-Ecke
Programmierwerkzeuge - MSI Installationen erstellen
Vera - Di 03.01.06 11:25
Titel: MSI Installationen erstellen
Hallo Forum! :P
Mein Chef möchte, dass unsere Software mit Hilfe des Windows Installer verteilt wird. Programme wie InstallShield oder Wise sind uns da etwas zu teuer und haben für unserer Ansprüche auch zu viele Funktionen. Ich hab auch
WiX [
http://sourceforge.net/projects/wix/] gefunden (war ein nettes Gespräch mit meinen Chef als ich ihm von "WiX" erzählt habe :-D). Allerdings finde ich die XML Dateien die man für WiX erstellen muss nicht sonderlich komfortabel. Im großen und ganzen haben die von WiX doch einfach die MSI-Tabellen in XML Form gebracht. :(
Jetzt meine Frage: Kennt Ihr noch andere Programme die MSI Dateien erstellen können? Mir wäre es am liebsten wenn die Projektdateien simplen Textdateien sind. Diese lassen sich dann besser mit einem VersionsControlSystem handeln. Außerdem muss auch ein Kommandozeilenprogramm vorhanden sein, damit ich die MSI Datei innerhalb des automatischen Build-Prozess erzeugen kann.
Vielen dank für Eure Hilfe!
Bye Vera. :roll:
MisterBum83 - Di 03.01.06 11:45
Also ich benutze [url]
http://www.innosetup.com[/url] . Das ist ein super Programm (kostenlos) zum erstellen von Installationen.
Vera - Di 03.01.06 11:48
InnoSetup erstellt aber keine MSI Dateien.
Martin1966 - Di 03.01.06 12:18
Hallo :wink2:
Das Tool
msi2xml [
http://msi2xml.sourceforge.net/] ist vergleichbar mit WiX. Allerdings wandelt das Tool die Tabellen 1 zu 1 in XML um. Ist also auch nicht so sonderlich konfortabel.
Lg Martin
Tino - Do 05.01.06 14:11
Hi Vera,
ich bastele schon seit Jahren an ein Programm rum welches MSI Dateien erstellen kann. Anhand einer Scriptsprache wird das zu installierende Projekt beschrieben. Ein Klick auf Kompilieren und die MSI Datei (oder auch eine ausführbare Anwendung) wird erstellt. Es ist auch ein Kommandozeilen Programm dabei um zum Beispiel das Setup innerhalb eines Buildvorgangs erstellen zu lassen.
Da es dir sehr auf das Eingabeformat ankommt poste ich hier mal einen Teil eines Beispielscripts damit Du Dir einen ersten Eindruck von der Script machen kannst:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101:
| <Project> Name = 'Styledev Installer'; Author = 'Tino Teuber';
// // Product // <Product> Name = 'Styledev Installer'; Version = '1.0.0.0'; Manufacturer = 'Tino Teuber';
ProductCode = '{3ECB97B5-78D9-4A94-A416-CFA22DF2DA93}'; PackageCode = '{5A5B4FE9-77F2-49D6-BA0F-CACB0F1C68BB}'; UpgradeCode = '{53794E7B-51D5-4112-BBDF-C8F752D4D66D}'; InstallFolder = '{ProgramFilesFolder}\Styledev Installer';
<ControlPanel> ProductURL = 'http://www.styledev.de'; ProductUpdateURL = 'http://www.styledev.de/update'; </ControlPanel> </Product>
// // Components // <Components> <Component> Name = 'compMain'; Code = '{CB9FFAB9-A0E2-48E4-9BA5-FB078040173A}'; Target = '{ProgramFilesFolder}\Styledev Installer';
<File> Source = '..\Files\sicl32.dll'; </File> <File> Source = '..\Files\sivc32.exe'; </File> <File> Source = '..\Files\sicc32.exe'; </File> <File> Source = '..\Files\bootldr.e32'; </File> <Shortcut> Name = 'Style Installer'; Directory = '{ProgramMenuFolder}\Styledev Installer'; Target = '{ProgramFilesFolder}\Styledev Installer\SIVC32.exe'; WorkingDirectory = '{ProgramFilesFolder}\Styledev Installer'; </Shortcut> <Registry> Root = HKCU; Key = 'Software/Test'; Action = raAppend; Type = rtMultiString; Value = 'Test'; </Registry> </Component>
<Component> Name = 'compDoc'; Code = '{A5A72380-759F-42FB-9F63-9FEF87F88908}'; Target = '{ProgramFilesFolder}\Styledev Installer\Help'; <File> Source = '..\Files\si.chm'; </File>
<Shortcut> Name = 'Dokumentation'; Directory = '{ProgramMenuFolder}\Styledev Installer'; Target = '{ProgramFilesFolder}\Styledev Installer\Help\si.chm'; WorkingDirectory = '{ProgramFilesFolder}\Styledev Installer'; </Shortcut> </Component>
</Components>
// // Features // <Features> <Feature> Title = 'Anwendung'; Description = 'Installiert die grundlegenden Dateien.'; Level = 1; Display = fdExpanded; <ComponentLink> Name = 'compMain';</>
<Feature> Title = 'Dokumentation'; Description = 'Installiert die Dokumentation von Styledev Installer'; Level = 1; <ComponentLink> Name = 'compDoc';</> </Feature>
</Feature> </Features>
// // Standard Dialogs // {$INCLUDE UserInterface.sis}
</Project> |
Das Programm unterstützt noch nicht alle Möglichkeiten von MSI da sich die ganze Anwendung noch in einem sehr frühen Entwicklungsphase befindet. So ist es zum Beispiel zur Zeit nur möglich Dateien installieren/deinstallieren, Shortcuts zu erstellen und Registry-Werte /-Zweige installieren/deinstallieren zu lassen. Auch die Dialoge lassen sich schon (fast) komplett selbst designen. Conditionals lassen sich auch definieren.
Das Programmpaket besteht aus zwei Anwendungen, einer Bibliothek und einer Hilfedatei:
- Ein Editor um die Installationsprojekte zu verwalten, zu kompilieren und Fehler zu beseitigen. Syntaxhighlighting gehört genauso dazu wie Codevervollständigung und Release-Definitionen.
- Der Kommandozeilen Compiler um ein Script in der Eingabeaufforderung zu kompilieren.
- Eine Bibliothek welche von den beiden o. g. Programme verwenden wird um ein Projekt zu kompilieren
- Die Hilfedatei enthält unter anderem die komplette Script-Referenz welche zum Teil schon dokumentiert ist.
Wenn du mal Lust hast das Programm zu testen dann melde dich einfach bei mir. Vielleicht reichen die jetzigen Funktionen ja bereits für Deine Anforderungen aus. ;-)
Gruß
Tino
Danny87 - Do 05.01.06 14:28
warum möchte dein chef überhaupt unbedingt, dass eure software mit Hilfe des Windows Installer verteilt wird?
welche vorteile verspricht er sich dadurch? ich benutze seit jahren InnoSetup und bin sehr zufrieden. hat nicht übermässig viele funktionen, aber auch nicht zu wenige. die funktionen die mir innosetup bietet sind sehr sinnvoll und ein besseres (freeware-)tool zum erstellen von setupdateien wirst du kaum finden.
gruss daniel
Tino - Do 05.01.06 14:54
Vorteile von Windows Installer Installationen sind zum Beispiel:
- Automatische Reperatur, wenn versehentlich eine Datei vom User gelöscht oder geändert wurde.
- Rollback, wenn eine Installation nicht fehlerfrei durchgeführt wurde
- Installationen können angekündigt werden. Es werden nur die s.g. "Entry-Points" erstellt, also zum Beispiel Shortcuts und Dateierweiterungen. Die eigentliche Anwendung wird erst bei Bedarf installiert.
- Componenten-Sharing, um bestimmte Programmteile einer Installation mit anderen Installationen zu teilen.
- Transforms, um eine Installation zu ändern. So kann man zum Beispiel eine englische Installation eindeutschen.
- Eine Installation kann unbeaufsichtigt installiert werden.
- Patching und Upgrades lassen sich mit Hilfe des Windows Installer (am besten in der neuesten Version) recht sauber durchführen.
- Der Windows Installer Dienst sowie die notwendigen Tools von MS um eine Installation zu erstellen sind kostenlos
Außerdem muss eine Software durch ein MSI-Paket installiert werden, um zukünftig das Microsoft Logo "Certified for Windows 2000" zu erhalten.
Gruß
Tino
Danny87 - Do 05.01.06 15:01
hmm.... okay.
das hat mich überzeugt.
Vera - Fr 06.01.06 14:52
Hi Tino!
Das sieht doch schon ganz gut aus. Würde mich über eine Testversion von Deinem Programm freuen (am besten per E-Mail). Vielleicht können wir es hier in der Firma ja einsetzen. Dazu muss ich es aber vorher testen. ;-)
bye Vera
Martin1966 - Di 10.01.06 14:28
@Timo: Wäre es möglich, dass du mir das Programm auch mal zukommen lässt? :flehan:
digi_c - Mi 11.01.06 15:17
Also so wie ich es verstanden habe ist der einzige Grund von MSI die Problemlose Verteilung per ADS. Ich glaube bei anderen Installern müssen die Admins noch spezielle Dateien bauen.
Ich würde dir wirklich NSIS(Nullsoft Setup Installer System) ans Herz legen. Das ist von WinAMP und wirklich sehr ausgereift und hat ne Menge Tools.
Ansonsten such mal bei
http://www.efb.nu nach MSI Tools.
Robert_G - Mi 11.01.06 17:49
Falls du mit dem VS.Net (>= 2003) arbeitest gäbe es da noch die Setup Projects. Die stellen sich fast komplett von alleine an dein(e) Projekt(e) ein. Auch Abhängigkeiten auf Bibliotheken/Content files werden berücksichtigt.
Ist zwar kein wirklicher Ersatz für InstallSchield & Co aber 100-mal besser als irgendwelche WiX-Vorlagen ( :mrgreen: ) runterzutippen.
Delete - Mi 11.01.06 23:37
Robert_G hat folgendes geschrieben: |
| WiX-Vorlagen ( :mrgreen: ) |
Ich finde das gut. :mrgreen: Das Teil, das 2004 in der DP verlost wurde, das hätte mich interessiert. War auch ein gutes MSI-Installer-Tool. Ich habe nur den Namen vergessen. :( War aber eh kostenpflichtig.
Robert_G - Mi 11.01.06 23:59
MathiasSimmack hat folgendes geschrieben: |
| Ich finde das gut. :mrgreen: |
Ging ja auch eigentlich an dich. Ich konnte mir doch gleich denken, dass du einem WiX thread nicht widerstehen kannst. :mrgreen: Wie gates eigentlich deinen WiX Visuals? Der Anfang sah damals doch sehr nett aus. ;)
| Zitat: |
| Das Teil, das 2004 in der DP verlost wurde, das hätte mich interessiert. |
Das war InstallAware, IMHO nicht so cool wie IS...
digi_c - Do 12.01.06 09:29
Also bei uns ist ein Einzelner nur damit beschäftigt die Setups zusammenzustellen aber auch da ist immer nur Installshield am werkeln...
Delete - Do 12.01.06 11:00
Robert_G hat folgendes geschrieben: |
| Wie gates eigentlich deinen WiX Visuals? Der Anfang sah damals doch sehr nett aus. ;) |
Über die zwei Editoren für SharpDevelop 1.x bin ich nicht hinaus gekommen. :oops: Beim neuen #d 2 müsste ich mich wohl erst mal mit diesem MSBuild-Kram beschäftigen, weil die ganze Kompilierung von
was auch immer da durch geleitet wird.
Vera - Do 12.01.06 12:11
Guten Morgen!!!!
Ich denke ehr, das die ADS Verteilung ein weiteres Argument ist. Weitere hat Tino ja bereits oben gepostet.
MSI ist meiner Meinung nach auch sehr ausgereift. Und wenn MS schafft, das komplette Office Paket damit bereits vor vielen Jahren erfolgreich zu installieren dann denke ich, dass man hier schon von "ausgereift" sprechen kann. ;-)
Auf jeden Fall werden wir MSI verwenden. Die Frage ist nur: Welches Tool wir dafür verwenden. InstallShield und Co sind einfach viel zu teuer und haben auch zu viele Funktionen. Ich will es schön einfach über ein Script machen. ;-) Ich weiß, bei InstallShield kann man die Projektdatei als XML speichern.
@Tino: Eine längere E-Mail bekommst du noch von mir. Dein Programm läuft so weit ganz gut. ;-)
bye bye! Vera!!
blah - So 19.02.06 10:15
Hi leute,
ich werf da noch mal den Advanced Installer in die runde :P
http://www.advancedinstaller.com/
evtl. sagt der ja dem einen oder anderen zu.
MfG blah
Vera - Fr 03.03.06 10:03
Danke für Deine Antwort.
Das Programm habe ich mir auch mal angeschaut. Ich meine, dass man damit keine eigenen Dialog erstellen konnte. Bin mir allerdings nicht mehr ganz sicher warum das Programm von meiner Liste gestrichen wurde. :gruebel:
Bye, Vera!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!