AKInstallerMSI für den Windows® Installer      
Erste Schritte - Teil2:
Nach der Übernahme aus dem Projekt-Assistenten bietet sich uns dieses Bild.
Wir müssen auf dieser Seite erst einmal keine weiteren Einstellungen tätigen.



Erwähnenswert ist allerdings Installationstyp. Es gibt zwei Arten davon, zum Einen Computerinstallation (für alle Benutzer) und zum Anderen Benutzerinstallation (nur für den aktuellen Benutzer).

Da wir Daten in SystemFolder und ProgramFilesFolder ablegen, handelt es sich definitiv um eine Computerinstallation, ein Benutzer hat hier keinen schreibenden Zugriff.




Auf der Dateien-Seite wurden unsere Daten wie gewünscht eingefügt und hier sind auch einige Einstellungen nötig.





Beginnen werden wir mit den Rechte-Einstellungen für unser Config-Verzeichnis.



NT-Rechte einzustellen ist im AKInstallerMSI sehr einfach.

     Nach dem Öffnen des Einstellungsdialogs wechseln Sie auf die Seite Rechte und klicken im Neu-Schalter auf das Pfeil-Symbol.

Nun wählen Sie hier den Punkt
Jeder/System/Admin aus.



Und die nötigen Daten werden eintragen.

Klicken Sie jetzt noch auf OK,



beantworten die Abfrage mit Ja und das war es damit auch schon.



Nun folgt die Datei-Einstellungen für FReqGUITools10.dll. Diese Datei liegt in SystemFolder und wird zudem von mehreren Applikationen benötigt.

Unter Komponenten muss die Einstellung Gemeinsame Datei gesetzt werden.

Der Windows Installer selbst benötigt die Einstellung Gemeinsame Datei nicht, da dieser das Vorhandensein durch eine GUID erkennt. Was uns zu einer weiteren Besonderheit führt: Komponenten.
 
Was genau Komponenten sind, finden Sie in der Anleitung, darum wird hier nicht weiter darauf eingegangen, wichtig ist nur dies:

Dateien, welche an öffentlichen Orten liegen (also außerhalb von INSTALLDIR z. B.  SystemFolder) sollten zu diesem Zweck in jedem Projekt die gleiche GUID verwenden. Der einfachste Weg sind hierbei Mergemodule.
Und Teil4 und Teil4.1 gehen genau darauf ein. Handelt es sich um eigene Dateien und/oder gibt es kein Mergemodul dafür, legen Sie ein eigenes MSM-Projekt dafür an.



Der Sprach-Editor benötigt noch weitere Dateien. Wenn der Punkt bei Ihnen verfügbar ist, wählen Sie Abhängigkeiten ermitteln (Teil4) und anschließend, wie im Bild rechts markiert, die ersten drei Dateien.

Da FReqGUITools10.dll bereits im Projekt ist, wird die Datei übergangen (also nicht doppelt aufgenommen).

Und da die Dateien aus dem SystemFolder kommen, werden Sie auch automatisch dort eingeordnet.

Beachten Sie, was für FReqGUITools10.dll und die Einstellung Gemeinsame Datei sowie Komponente und GUID galt, gilt auch für die neuen Dateien:
Mergemodule!

Haben wir auf der Mergemodul-Seite die entsprechenden Ordner bereits angeben, können die Datei einfach durch Module austauschen (Teil4.1).



Nun können wir für den Sprach-Editor noch Verknüpfungen anlegen (damit befasst sich unter anderem Teil7) und Registry-Einträge anlegen.



Auf der Seite Registry können Sie Schlüssel einzeln per Eintrag anlegen erstellen oder aber den Namen per Drag and Drop an die entsprechenden Stelle kopieren.

Halten Sie dabei die Strg-Taste gedrückt, erscheint ein Dialog, der die komplette Übernahme aller Unterschlüssel und Daten ermöglicht.

Ist die Strg-Taste nicht gedrückt, kopieren Sie nur den Namen.

Legen Sie für unser Beispiel im oberen Bereich
HKEY_CURRENT_USER\Software\
AKApplications\AKInstallerMSI\
Settings\

an.

Und kopieren anschließend, wie im Bild unten gezeigt, die Daten. Beachten Sie, dass es auf dieser Seite durchaus möglich ist, Daten doppelt anzulegen/einzufügen, da Einträge eine Produktsprache zugeordnet werden können.




Wir haben jetzt Daten in SystemFolder (Computerinstallation) und HKEY_CURRENT_USER (Benutzerinstallation).

Frage: "Warum mischen und geht das überhaupt?"

Antwort: Ja es geht und weil das Beispiel es hergibt und es öfters vorkommt als man denkt. :-)

Klar, es würde auch anders gehen. Wir könnten die gesamt Installation als Benutzerinstallation anlegen und als INSTALLDIR [LocalAppDataFolder]Programs\[Manufacturer]\[ProductName] vorgeben.

Hierzu müssen alle DLLs satt in SystemFolder in INSTALLDIR\Tools liegen und es müssten nun nicht mal Rechte für INSTALLDIR\Config gesetzt werden, da der Ordner ja nun im Benutzerbereich liegt.

Aber das wäre ja zu einfach und auch nicht der Regelfall - hier aber durchaus möglich!

Computerinstallation-Setup:
Benutzer-Typ Vor NT6 (Win2000/XP) Ab NT6
Admin
(z. B. Herr Müller, SysAdmin)
Die Benutzer-Daten werden nur für Herrn Müller eingerichtet. Die Benutzer-Daten werden nur für Herrn Müller eingerichtet.
Benutzer
(z. B. Herr Meier, einfacher Benutzer)
Installation scheitert, da ein Benutzer nicht in SystemFolder schreiben kann. Das Setup verlangt bei der Installation höhere Rechte (Herr Müller muss kurz ran) und das Setup trägt die Benutzer-Daten für Herrn Meier ein.


Benutzerinstallation-Setup:
Benutzer-Typ Vor NT6 (Win2000/XP) und ab NT6
Admin
(z. B. Herr Müller, SysAdmin)
Die Benutzer-Daten werden für Herrn Müller eingerichtet und das Programm ist nur für ihn verfügbar.
Benutzer
(z. B. Herr Meier, einfacher Benutzer)
Die Benutzer-Daten werden für Herrn Müller eingerichtet und das Programm ist nur für ihn verfügbar.

Frage: "Und Frau Schmidt, die Urlaubsvertretung für Herrn Meier? Muss das Programm bei einer Benutzerinstallation auch für Sie installiert werden und damit doppelt auf Platte vorhanden sein?"

Antwort: Ein schlicht Ja.

Wenn also die Herren Müller und Meier und Frau Schmidt damit arbeiten sollen, müssen wir eine anderen Weg gehen, eine Computerinstallation, die dennoch die Benutzer-Daten (die wenigen Registry-Einstellungen in unserem Fall) für den jeweiligen Benutzer einrichtet. Es sei nicht verheimlicht, das es noch andere Möglichkeiten gäbe, auf die im Beispiel aber nicht weiter eingegangen werden soll.

Unsere Lösung:
Wählen Sie wie im Bild MS Active Setup aus.


Beantworten Sie diesen Dialog schlicht mit OK.


Dies sorgt dafür, dass die Anwendung einmalig beim nächsten Einloggen eines beliebigen Benutzer für diesen Benutzer repariert wird. Und zwar werden Benutzer-Registry-Einträge und fehlende Date (z. B. in Benutzer-Ordnern) installiert.

Damit installiert Herr Müller (der Admin) die Anwendung ganz normal und sobald sich Herr Meier oder Frau Schmidt (normale Benutzer) anmelden, werden die Benutzerdaten geschrieben.

Problem gelöst.