Mit was baut ihr eure Windows Installer?

Einstiegsfragen, Mathematik, Physik, künstliche Intelligenz, Engine Design
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Mit was baut ihr eure Windows Installer?

Beitrag von kimmi »

Beim Advanced-Installer nervt mich vor allem die Tatsache, dass man gefühlt jede Woche die aip-Files mit einer neuen Versions-Id verpasst bekommt.
Tiles

Re: Mit was baut ihr eure Windows Installer?

Beitrag von Tiles »

Ah, da lauern also noch mehr Nickligkeiten. Da bin ich noch gar nicht angekommen. Ich stolper nur grade über die ganzen Bugs. Zum Beispiel fehlt im Select File Association Dialog plötzlich der Produktname mit der deutschen Übersetzung. Und oben wird hier und da Text abgeschnippelt. Da passen die Übersetzungen nicht rein ^^

Bin trotzdem immer noch von dem Ding begeistert. Mal schaun wie lang :)
Benutzeravatar
Thoran
Establishment
Beiträge: 227
Registriert: 15.05.2009, 12:51
Wohnort: Stuttgart
Kontaktdaten:

Re: Mit was baut ihr eure Windows Installer?

Beitrag von Thoran »

Ich verwende auch NSIS privat und in den Firmen in denen ich bisher gearbeitet habe. Das Probleme ist eher nicht das die Dateiendungszuordnung nicht mit einem Installer geht, sondern das der Aufwand dazu sich gravierend unterscheidet. Für NSIS gibst da halt jede Menge Module wie z.B. http://nsis.sourceforge.net/mediawiki/i ... ldid=16967 . Da sieht dann die Dateiendungszuordnung so aus:

Code: Alles auswählen

!include "registerExtension.nsh"
...
# later, inside a section:
${registerExtension} "c:\myplayer.exe" ".mkv" "MKV File"
 
${unregisterExtension} ".mkv" "MKV File"
Bem.: Das c:\ sollte wohl durch die Variable des Installationsziels ersetzt werden, wie z.B. $INSTDIR\myplayer.exe

Aber NSIS ist vom grundlegenden Programmieren nicht das Komfortabelste, was man bekommen kann.

Gruß
Thoran
Wer Rechtschreibfehler findet, darf diese gerne behalten.
Mein Entwicklertagebuch
Aktuelle Projekte: Universum: Domination (ehemalig AlphaOmega),Universum: Sternenjäger, PixelWars: Highscore-based Top-Down-Spaceshooter
Spieleengine Unreal 5
Benutzeravatar
dot
Establishment
Beiträge: 1745
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Mit was baut ihr eure Windows Installer?

Beitrag von dot »

dot hat geschrieben:
dot hat geschrieben:
Krishty hat geschrieben:WiX
^-- this
just sayin'... :P
... :P :P :P ...
hagbard
Beiträge: 66
Registriert: 05.08.2010, 23:54

Re: Mit was baut ihr eure Windows Installer?

Beitrag von hagbard »

Stimmt schon die NSI Syntax ist echt nicht sehr schön und einsteigerfreundlich. Deswegen auch meine Einschränkung wenn man eh CMake nutzt weil mit den CMake/CPack Frontend wird die Syntax halbwegs erträglich...
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Mit was baut ihr eure Windows Installer?

Beitrag von Krishty »

dot hat geschrieben:
dot hat geschrieben:
dot hat geschrieben:
Krishty hat geschrieben:WiX
^-- this
just sayin'... :P
... :P :P :P ...
WiX ist ein Haufen Scheiße.

Oh, du willst die 32- und 64-Bit Version im selben Paket ausliefern? Wie schön! Fühl dich aufs Äußerste gefickt!

Oh, deine Verknüpfung will ein Icon haben? Aus der EXE, auf die es zeigt? Dann muss die EXE halt doppelt in den Installer kopiert werden. Weil das viel eleganteres Design ist! Macht es heute wirklich noch was aus, wenn alles doppelt so groß ist? Natürlich *könntest* du die Verknüpfung auch non-advertised machen, aber dann funktioniert das Setup nur bei einzelnen Usern!

Ich habe zunehmend den Eindruck, dass das von Architecture Astronauts als Doktorarbeit entwickelt wurde.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Helmut
Establishment
Beiträge: 237
Registriert: 11.07.2002, 15:49
Wohnort: Bonn
Kontaktdaten:

Re: Mit was baut ihr eure Windows Installer?

Beitrag von Helmut »

Krishty hat geschrieben:WiX ist ein Haufen Scheiße.
100%ige Zustimmung.
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Mit was baut ihr eure Windows Installer?

Beitrag von kimmi »

So fühlt sich das ja, 100%te Zustimmung...
Benutzeravatar
dot
Establishment
Beiträge: 1745
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Mit was baut ihr eure Windows Installer?

Beitrag von dot »

OK, diese Probleme hatte ich mit WiX noch nie. In all meinen Erfahrungen hat WiX bisher ausgesprochen klaglos funktioniert; aber ich musste zum Glück nur sehr sehr selten und noch nie wirklich komplexe Installer bauen...
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Mit was baut ihr eure Windows Installer?

Beitrag von Krishty »

Auch ein Highlight:
Windows Installer only uses the first 3 parts of the version in upgrade scenarios, so make sure to increment your version such that one of the first 3 parts is higher than any previously shipped version. For example, if your version 1 uses Version value 1.0.1.0, then version 2 should have a Version value of 1.0.2.0 or higher (1.0.1.1 will not work here).
Das scheint am Windows Installer zu liegen, nicht an Wix. Nichtsdestotrotz – WARUM?! Nachtrag: Doch, es liegt an WiX. Und es installiert, falls man es trotzdem macht, 1.0.1.1 parallel zu 1.0.1.0 (man hat die dann tatsächlich doppelt in der Systemsteuerung). I can’t even
Without including support for major upgrades you risk greatly complicating your distribution story if you ever need to release updates later on.
… sagt das Kapitel am Ende. Falls ihr also jemals was damit macht, lest das zuerst. Sonst müssen die User ihre Programme deinstallieren, bevor sie ein Update installieren können. Toll!

WiX bestätigt echt jedes Vorurteil, das ich über Dinge habe, die auf XML basieren.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Mit was baut ihr eure Windows Installer?

Beitrag von Krishty »

Oh Mann. Dem Installer einen Dialog verpasst, Größe von 62 KiB auf 292 KiB explodiert.

Wenn ich den Installer im Hex-Editor öffne, sehe ich als erstes, dass diese Datei komplett hineinkopiert wurde.
Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.
WTF WAS MACHEN DIESE STRINGS IN MEINEM INSTALLER

WiX’ Name kommt übrigens daher, dass es einen die ganze Zeit fickt.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Mit was baut ihr eure Windows Installer?

Beitrag von Krishty »

WiX verbrät 60 KiB für schöne Hintergrundbilder, die ich gar nicht haben möchte. Man kann den Hintergrund aber auch nicht deaktivieren. Die „Lösung“: Ein transparentes 1×1-Pixel-PNG machen und mit .bmp-Endung in den Installer stopfen.

Windows 7 kann kein PNG, da wird der Hintergrund dann also einfach weggelassen.

Ab Windows 8 werden PNGs unterstützt, und werden dann eben unsichtbar angezeigt.


Nein, geht doch nicht. Die *wirkliche* Lösung: Eine leere Datei anlegen (0 B), zu .bmp umbenennen, und als Hintergrundbild benutzen. Das behandelt WiX als Soft Failure und zeigt einfach keinen Hintergrund an.

Ich sollte echt anfangen, ein eigenes Installer-System zu bauen. Ein Einstieg wäre https://msdn.microsoft.com/en-us/librar ... 67813.aspx .
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Tiles

Re: Mit was baut ihr eure Windows Installer?

Beitrag von Tiles »

Tja, das war es wohl mit mir und dem Advanced Installer. Maintenance expired, und das Ding ist wieder im Demo Mode. Und da jetzt jedes Jahr hinterherzuhechten ob die das Ding verlängern, dafür habe ich mich doch einmal zu oft rumgeärgert. Das war jedesmal ein Kampf das wieder zum Funktionieren zu bekommen.

Also zurück zu InnoSetup. Und dann halt ohne die Möglichkeit die Dateiendung zu ändern ^^

Wenn ich nur wüsste wo ich das Beispielfile verbuddelt habe das ich damals gebastelt hatte ...
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Mit was baut ihr eure Windows Installer?

Beitrag von Krishty »

Ich habe heute gelernt, wie man einen Windows Installer komplett von Hand in Orca zusammenbaut. Quasi die Assembler-Sprache der MSIs. Als wäre es nochmal 1997.

Die MSI funktioniert vollkommen perfekt, und statt 158 KiB (WiX) ist der reine Installer nur noch 55 KiB groß. Ich brauche nun kein WiX und kein scheiß .NET-Framework mehr. Ich konnte die ganzen blöden Hintergrundbanner rausschmeißen und das Layout verbessern. Ich fühle mich komplett erleuchtet, nun alle Setups auf meinem System irgendwie nach meinem Willen hacken zu können.

Aber ich habe absolut NULL Plan, wie ich diese Erleuchtung automatisieren soll. Ich würde auch gern zumindest ein Tutorial für euch machen, aber das würde Wochen verschlingen. Und irgendwie befürchte ich, nächste Woche wieder alles vergessen zu haben.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Alexander Kornrumpf
Moderator
Beiträge: 2138
Registriert: 25.02.2009, 13:37

Re: Mit was baut ihr eure Windows Installer?

Beitrag von Alexander Kornrumpf »

Krishty hat geschrieben:Ich habe heute gelernt, wie man einen Windows Installer komplett von Hand in Orca zusammenbaut. Quasi die Assembler-Sprache der MSIs. Als wäre es nochmal 1997.

Die MSI funktioniert vollkommen perfekt, und statt 158 KiB (WiX) ist der reine Installer nur noch 55 KiB groß. Ich brauche nun kein WiX und kein scheiß .NET-Framework mehr. Ich konnte die ganzen blöden Hintergrundbanner rausschmeißen und das Layout verbessern. Ich fühle mich komplett erleuchtet, nun alle Setups auf meinem System irgendwie nach meinem Willen hacken zu können.

Aber ich habe absolut NULL Plan, wie ich diese Erleuchtung automatisieren soll. Ich würde auch gern zumindest ein Tutorial für euch machen, aber das würde Wochen verschlingen. Und irgendwie befürchte ich, nächste Woche wieder alles vergessen zu haben.
Ich meine mich zu erinnern, ähnliche Berichte von LSD-Trips gelesen zu haben :)
Tiles

Re: Mit was baut ihr eure Windows Installer?

Beitrag von Tiles »

Du könntest dir ein Tool dafür bauen, und es WIX nennen :)
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Mit was baut ihr eure Windows Installer?

Beitrag von Krishty »

Tiles hat geschrieben:Du könntest dir ein Tool dafür bauen, und es WIX nennen :)
Wenn schon, dann Wichs! Weil ich es kann.
Alexander Kornrumpf hat geschrieben:Ich meine mich zu erinnern, ähnliche Berichte von LSD-Trips gelesen zu haben :)
Ja, die Ähnlichkeiten zwischen Packaging und schlechten Trips sind nicht von der Hand zu weisen …


Ah, wo ich gerade dabei bin: Das Stichwort heißt Packaging. Sucht nicht nach Installer oder Setup oder Deployment sondern nach dem Fachausdruck, Packaging. Außerdem sind auf IT Ninja total viele Experten dieses Bereiches unterwegs. Wenn ihr Fragen zum Thema habt und googelt, findet ihr bei IT Ninja doppelt so schnell eine Antwort wie bei Stack Overflow.


Außerdem, Tiles: Ich hab’s nicht gewusst und auch hier im Thread nicht gefunden, aber Install Shield gibt’s gratis für alle Visual Studio-Nutzer. Leg unter Visual Studio ein neues Setup-Projekt an, und dann erscheint im Assistent die Option, es direkt herunterzuladen und zu installieren. Es ist eine abgespeckte Version und ich hab’s noch nicht ausprobiert, aber dafür ist alles Visual Studio-kompatibel und von MS abgesegnet.


Zur Technologie: Die Überlegenheit vom Microsoft Installer (MSI) gegenüber allem anderen ist überwältigend. Wer’s nicht glaubt, dem sei diese „Short Answer“ auf StackOverflow, The corporate benefits of using MSI files, ans Herz gelegt. Im Grunde geht es darum, dass MSIs automatisch alles können – vom Rollback bei Fehlschlag und sauberer Deinstallation unter Berücksichtung gemeinsam genutzter oder geänderter Dateien und UI-loses Setup über Befehlszeile bis hin zu Advertising auf tausende Rechner einer Domäne, bei der sich jeder Nutzer beliebig auf jedem Rechner anmelden kann und das Programm automatisch direkt installiert ist. Auf jedem Windows mit jedem Patch-Level in jeder Sprache. Wer das einmal begriffen hat, denkt eigentlich nie mehr über eigene EXEs oder Skripte oder ZIPs nach. Ob man die MSI dann mit WiX oder InstallShield oder Orca oder sonstwas macht, sei hier egal.

Die großen Nachteile sind aber:
  • Die unfassbare steile Lernkurve. Man muss erstmal eine Woche lang lernen zu verstehen, was man da eigentlich tut. Allerdings betont auch jeder Experte aus dem Bereich immer wieder, dass man ohne Vorwissen schlicht keine vernünftigen Setups bauen kann weil das Problem halt so schwierig ist.
  • Außerdem können wegen einer 25 Jahre zurückliegenden Fehlentscheidung keine MSIs ausgeliefert werden, die sowohl 32- als auch 64-Bit-Systeme unterstützen (in dem Fall braucht man eine EXE als Bootstrapper, um das richtige MSI auszuwählen).
  • MSIs können nicht geschachtelt werden; das erfordert MSI-kompatibles Packaging aller Prerequisites über Merge Modules. Ob das gut oder schlecht ist, weiß nicht einmal Microsoft selber.
Ich schreibe hier einfach weiter über alles, was ich so entdecke.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Tiles

Re: Mit was baut ihr eure Windows Installer?

Beitrag von Tiles »

Hui Interessant. Danke für den Hinweis :)

Scheints aber noch nicht für VS 2017 zu geben? Ich finde nur eine VS 2015 und die Auswahl für VS 2013. Blender, und somit auch ich, ist aber inzwischen auf der 17er Version. Mal schaun obs trotzdem geht :)

https://msdn.microsoft.com/de-de/library/dn531020.aspx
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Mit was baut ihr eure Windows Installer?

Beitrag von Krishty »

Ach verdammt, Professional und Enterprise. Ich hatte auf der Arbeit nachgeschaut und habe da wohl Enterprise statt Community. Verdammt.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Tiles

Re: Mit was baut ihr eure Windows Installer?

Beitrag von Tiles »

Schade. Aber ich bin mit Innosetup inzwischen doch recht zufrieden. Ist also kein Beinbruch :)
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Mit was baut ihr eure Windows Installer?

Beitrag von Krishty »

Sooo; Lokalisierung des Setups:
  • MSI kann grundsätzlich nur eine Sprache. Naiv muss man also für jede Sprache ein eigenes MSI erzeugen und den Kunden auswählen lassen, welche Sprache er haben möchte.
    Ist natürlich Quatsch, weil man auch die Ladung des Setups vervielfachen muss; es sei denn, man teilt das Setup in MSI und .cab-Archiv, aber dann braucht der Kunde zwei Dateien im selben Verzeichnis zum Installieren, und bla bla bla …
  • Allerdings gibt es in MSI Transformationen, mit denen Setups angepasst werden können (.mst-Dateien).
    Die sind zum Beispiel dafür gedacht, dass Firmen ihre eigenen Logos in fremde Setups packen können, oder dass Admins für ihre Firmen Setup-Features ersetzen oder ausblenden können bevor die Installer auf die Computer verteilt werden, usw.
  • Übersetzung ist ebenfalls eine Transformation! Nun kann man also ein Sprachneutrales Setup erzeugen (Englisch?) und für jede weitere Sprache eine eigene Transformation, die über’s Setup gelegt wird.
    Jede Transformation ersetzt die Original-Strings durch übersetzte Strings; macht Buttons größer, falls der Originaltext nicht passt; ersetzt den .rtf-Stream mit der Lizenz; usw usf.
  • Transformationen lassen sich in MSIs einbetten. Die sprachabhängigen Transformationen lassen sich also in die sprachunabhängige MSI einbetten.
  • Nun braucht man „nur“ noch einen Bootstrapper, der beim Start des Setups die richtige Sprache auswählt. Beim Start der MSI-Datei kann man die Transformation (also die Sprache) als Parameter mit angeben.
  • Es scheint allerdings auch eine Hintertür zu geben, um das zu vereinfachen: Wenn man der Sprach-Transformation einen Namen gibt, der dem Sprach-Code entspricht (z.B. 1033 für de-DE), wählt der Windows Installer sie automatisch aus. Das konnte ich aber noch nicht bestätigen; so weit bin ich hier noch nicht.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Antworten