Autor Thema: @Lukas: Versionierung vom Loksim  (Gelesen 4953 mal)

Offline JohannesH

  • Betatester
  • Hero Member
  • **
  • Beiträge: 523
@Lukas: Versionierung vom Loksim
« am: Juli 16, 2012, 16:01:05 Nachmittag »
Hi Lukas,

ich will mich grad an einem kleinen Toolchen für Loksim versuchen, und habe mal geschaut, wo ich denn zuverlässig die Version des installierten Loksims rauskriege. Hab erst im Loksim-Verzeichnis geschaut, aber aber nix gefunden, was mich glücklich gemacht hätte. Nächster Blick galt also der Registry, und da wurde ich auch fündig:

REG_SZ: HKEY_CURRENT_USER\Software\Loksim-Group\LokSim3D\Last Installed Version

nur steht da bei mir 2.7.2 statt 2.8. Darfst mir jedoch glauben, dass ich wirklich die 2.8 hab, und zwar über die 2.7.2 drüber kopiert ins selbe Verzeichnis.

Hab auch noch um die sonst so üblichen verdächtigen Ecken geschaut (HKLM\..., HKCU\...\Wow6432Node\... etc.), aber nix gefunden. Hat das Absicht, hab ich was verpasst, oder hast Du einfach nicht hochversioniert?

LG
JH

Offline Pokunas

  • Full Member
  • ***
  • Beiträge: 186
Re: @Lukas: Versionierung vom Loksim
« Antwort #1 am: Juli 16, 2012, 16:39:16 Nachmittag »
Der Schlüssel heißt "Last Installed Version" - bezieht sich also vermutlich auf die Version, die vor der aktuellen Version installiert war. Wenn du Loksim blank neuinstallieren würdest, ist dieser Schlüssel auf jeden Fall nicht da.

Man könnte die Loksim-Uninstall-Information nehmen - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall und dann den Loksim3D-Eintrag suchen. Dort ist die Version vorhanden (ich weiß aber nicht, wie es aussieht, wenn man eine "Update-Installation" vornimmt - ob dann hochgezählt wird). Allerdings ist das keine gute Idee. Denn man kann Loksim auch vollkommen ohne Installation verwenden und einfach die Verzeichnisse kopieren. In dem Fall würde logischerweise auch kein Uninstall-Eintrag existieren.

Die günstigste Lösung dürfte sein, die Versionsnummer der "Loksim3D.exe" im Loksim-Verzeichnis auszuwerten. Wenn sich dein Programm im Loksim-Verzeichnis befindet, entfällt auch das Suchproblem, in welchem Pfad die "Loksim3D.exe" liegt. Je nachdem, welche Programmiersprache du verwenden willst, ist das mehr oder weniger einfach. Suche am besten mit Google nach "windows file version" + Name deiner Programmiersprache.
« Letzte Änderung: Juli 16, 2012, 16:40:59 Nachmittag von Pokunas »

Offline JohannesH

  • Betatester
  • Hero Member
  • **
  • Beiträge: 523
Re: @Lukas: Versionierung vom Loksim
« Antwort #2 am: Juli 16, 2012, 16:47:26 Nachmittag »
Hallo Pokunas,

ich hatte einfach angenommen, dass die "last installed version" die ist, die ich zuletzt installiert habe. Ich verstehe Dein Argument so, dass die aktuelle eher die "currently installed version" sein müsste. Das mit dem "Uninstall" hört sich in der Tat ungut an und nach Trickserei. Am meisten überzeugt hat mich jedoch, dass man Loksim auch auf die Platte packen kann, ohne dass das OS davon was mitkriegt.

Mein Toolchen wird sich allerdings nicht nach "C:\Loksim3D" installieren, sondern ganz gemäß der Microsoft-Vorgaben. Das Rumgefummele mit den Rechten in einem neuen Ordner unterhalb von C: ist ja spätestens seit XP berüchtigt. Deswegen werde ich beim ersten Start meines Tools nachschauen, ob es "C:\Loksim3D" gibt und ob dort die Loksim3D.exe liegt. Wenn nicht, wird der Anwender gefragt, wo er denn hin installiert hat.

LG
JH

Offline lukash

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 1900
    • Loksim Tools Downloads
Re: @Lukas: Versionierung vom Loksim
« Antwort #3 am: Juli 16, 2012, 16:58:32 Nachmittag »
Die "Last Installed Version" wurde wohl vom alten Installer angelegt, beim neuen Installer ab 2.8 wird dieser Wert nicht mehr gesetzt. Habe ich nicht dran gedacht, ich halte ihn auch nicht wirklich für nötig.

Wie schon vorgeschlagen, würde ich die Dateiversion der Loksim3D.exe verwenden, um die Version herauszufinden. Es können ja auch parallel mehrere Versionen installiert sein. Den Pfad C:\Loksim3D würde ich nicht hart einkodieren, sondern in der Registry nachsehen wo überall Loksim Versionen liegen:
HKEY_CURRENT_USER\Software\Loksim-Group\Install\Paths

Die Pfade sind dabei mit "|" getrennt und werden bei jedem Start des Loksims eingetragen. Dies funktioniert also auch, wenn der Loksim nicht mit dem Setup installiert wird, sondern nur reinkopiert wurde

lg
Lukas

Offline JohannesH

  • Betatester
  • Hero Member
  • **
  • Beiträge: 523
Re: @Lukas: Versionierung vom Loksim
« Antwort #4 am: Juli 16, 2012, 17:05:28 Nachmittag »
@Lukas

kann ich mich bei HKCU\Software\Loksim-Group\Install\Paths auf die Reihenfolge verlassen, dass die neueste immer am Ende steht, oder sollte ich besser alle Loksim3D.exe in den aufgelisteten Pfaden checken und mir die aktuellste rauspicken?

LG
JH

Offline lukash

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 1900
    • Loksim Tools Downloads
Re: @Lukas: Versionierung vom Loksim
« Antwort #5 am: Juli 16, 2012, 17:32:00 Nachmittag »
kann ich mich bei HKCU\Software\Loksim-Group\Install\Paths auf die Reihenfolge verlassen, dass die neueste immer am Ende steht, oder sollte ich besser alle Loksim3D.exe in den aufgelisteten Pfaden checken und mir die aktuellste rauspicken?
Nein, Du musst alle Einträge durchgehen und die "am besten passende" Version heraussuchen. Es kann auch sein, dass dort eingetragene Programmdateien gar nicht mehr existieren...

Wenn ich es mir recht überlege, sollte ich da vielleicht bei der nächsten Installerversion Verbesserungen vornehmen. Sodass man zumindest die mit dem Setup installierte "Hauptversion" leichter auffinden kann

lg
Lukas

Offline JohannesH

  • Betatester
  • Hero Member
  • **
  • Beiträge: 523
Re: @Lukas: Versionierung vom Loksim
« Antwort #6 am: Juli 16, 2012, 17:52:17 Nachmittag »
Hi Lukas,

hm, also kommt drauf an, ob Du auf Tooling stehst oder nicht, aber der Einfachheit halber einfach beim Starten vom Loksim "blind" nen Reg-Eintrag schreiben kostet im allerschlimmsten Fall ne 100stel Sekunde ;) Und zwei davon auch nicht viel mehr, weil das OS dann ja schon in der Gegend ist. Version und Pfad, und wir Tooler sind happy :)

Wenn Du's richtig hübsch machen willst, dann unterscheidest Du noch zwischen 32-Bit-Systemen und 64-Bit-Systemen. Die Abfrage ans OS dauert mit Low-Level-Api aber nedmal 20 Nanosekunden. Einfach aktuellen Exe-Pfad und aktuelle Exe-Version beim Starten in die Registry schreiben. Also den von der aufgerufenen Version. Wenn n Tool mehr braucht, muss es halt so, wie Du es schon beschrieben hast, crawlen.

LG
JH
« Letzte Änderung: Juli 16, 2012, 17:55:37 Nachmittag von JohannesH »

Offline lukash

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 1900
    • Loksim Tools Downloads
Re: @Lukas: Versionierung vom Loksim
« Antwort #7 am: Juli 16, 2012, 18:00:16 Nachmittag »
Der Pfad wird ja schon jetzt jedes Mal beim Starten des Loksims eingetragen? Was fehlt wäre nur die "Hauptinstallation" irgendwo zu speichern, und das geht sowieso nur beim Setup.
Die Version der jeweiligen .exe könnte man natürlich auch irgendwo vermerken, aber genauso kann man das als Toolersteller problemlos bei jedem Start abfragen. Dauert auch nicht lange ;)

Was wäre für eine Unterscheidung zw. 32- und 64-Bit nötig?

Offline JohannesH

  • Betatester
  • Hero Member
  • **
  • Beiträge: 523
Re: @Lukas: Versionierung vom Loksim
« Antwort #8 am: Juli 16, 2012, 18:32:27 Nachmittag »
Hi Lukas,

eigentlich nix. Ich weiß ja nicht, wie Du den Loksim baust. Wenn Du ihn auf "Any CPU" schreibst, kann alles so bleiben, wie es ist. Wenn Du zwischen 32- und 64-Bit-Version unterscheidest, gehören die 64-Bit-Einträge da hin, wo sie jetzt schon sind, und die 32-Bit-Einträge "quasi" an dieselbe Stelle in der Registry, außer dass zwischen "Software" und "Loksim-Group" noch der "Wow6432Node"-Knoten gehört. Wenn Du Bedarf hast, such ich Dir den entsprechenden Artikel aus dem MSDN gern raus.

Viel wichtiger wär aber gerade hinsichtlich des bald erscheinenden Windows 8, dass der Loksim sich möglichst nah an die Win 7-Zertifizierung tastet, insbesondere, was die Verzeichnisstruktur angeht. Noch wabern viele Gerüchte durch die Gegend, und die ganz großen Software-Buden stemmen sich vehement gegen das, was Microsoft auf diversen Veranstaltungen angekündigt hat. Ich persönlich, und zwar durchaus nach Rücksprache mit Leuten, die nicht nur in Kleinkleckersdorf, sondern auch in Redmond wohnen, gehe davon aus, dass alles nicht so schlimm wird. Allerdings doch mehr als bloß halb so schlimm.

Loksim hat, schätze ich, kaum den Anspruch, eine Metro-App zu werden (das würde einer kompletten Neuprogrammierung gleich kommen). Damit wäre sie eine "Legacy-App", also eine "Anwendung aus älteren Zeiten". Letztlich könntest Du alles so lassen, wie es ist, jedoch ist das nicht wirklich empfehlenswert, weil Win 8 jeden Simmer gefühlt 1000x fragen wird, ob er sich "mit dieser alten, möglicherweise schädlichen Software mögliche Sicherheitslücken" einfangen möchte.

Microsoft will Apps, ganz im Stil von Apple. Und es duldet alles, was den bisherigen Richtlinien von Win 7 entspricht. Alles andere wird als "möglicherweise schädlich" angesehen, und deswegen bedarf es zur Installation Admin-Rechten und sehr viel Fummelei. Ich hab das grad mal ausprobiert. Die Meldungen von der Metro-Beta hören sich an, als wäre der Loksim ein Virus, würde Geld kassieren und den PC zum Explodieren bringen. Für uns hartgesottene Windowsianer und Loksimmer ist das kein Ding, das kennen wir ja schon seit Win 7, aber für neue Anwender klingt das so, als stünde der dritte Weltkrieg in ihrem Wohnzimmer aber sowas von kurz bevor!

Als alter MSDN-Gold-Kunde mit ganz guten Drähten zu den "powers to be" würde ich Dir also sehr dringend nah legen, die Verzeichnisstruktur spätestens zur 3.0 an die Vorgaben zu Win 7 anzupassen. Und Dich genau nur darauf zu konzentrieren und alles andere außer Acht zu lassen. Das sind einfach bloß Hausaufgaben, die wir alle gerade tun.

LG
JH

Offline lukash

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 1900
    • Loksim Tools Downloads
Re: @Lukas: Versionierung vom Loksim
« Antwort #9 am: Juli 16, 2012, 19:23:38 Nachmittag »
Hallo Johannes!

eigentlich nix. Ich weiß ja nicht, wie Du den Loksim baust. Wenn Du ihn auf "Any CPU" schreibst, kann alles so bleiben, wie es ist.
"Any CPU" ist eine Einstellung für Managed Code (.NET). Native Code ("pures" C/++) ist entweder 32- oder 64-Bit. Loksim ist, wie die meisten Programme, ein 32-Bit Programm und daran wird sich vermutlich auch in nächster Zeit nichts ändern.

Wenn Du zwischen 32- und 64-Bit-Version unterscheidest, gehören die 64-Bit-Einträge da hin, wo sie jetzt schon sind, und die 32-Bit-Einträge "quasi" an dieselbe Stelle in der Registry, außer dass zwischen "Software" und "Loksim-Group" noch der "Wow6432Node"-Knoten gehört. Wenn Du Bedarf hast, such ich Dir den entsprechenden Artikel aus dem MSDN gern raus.
Also so wie ich die MSDN Artikel verstehe, muss man sich im Normalfall darum nicht kümmern. Windows leitet die entsprechenden Registry-Aufrufe entsprechend auf die 32- oder 64-Bit Einträge um. Aber ist wie gesagt für den Loksim nicht relevant, da 32-Bit und HKCU\Software sowieso zw. 32- und 64-Bit Anwendungen geteilt wird.

Viel wichtiger wär aber gerade hinsichtlich des bald erscheinenden Windows 8, dass der Loksim sich möglichst nah an die Win 7-Zertifizierung tastet, insbesondere, was die Verzeichnisstruktur angeht.
Loksim 2.8.1 wird theoretisch auch im "Programme" Verzeichnis problemlos lauffähig sein. Die nötigen Anpassungen (sehr wenige) sind dafür schon vorgenommen. Komplexer ist eher die Frage, wie man mit bestehenden Loksim-Installationen umgehen soll. Da müsste man Daten verschieben, was nicht ganz so einfach ist. Deshalb weiß ich nicht, ob mit 2.8.1 auch wirklich schon eine Installation ins Programme Verzeichnis (mit separatem Datenverzeichnis) automatisch durchgeführt werden wird

Loksim hat, schätze ich, kaum den Anspruch, eine Metro-App zu werden (das würde einer kompletten Neuprogrammierung gleich kommen).
Bevor das passiert, lasse ich mal die Multi-Millionen-Firmen ausprobieren, ob komplexe Programme als Metro-Apps realisiert werden können (mit sinnvollem UI) ;)

Damit wäre sie eine "Legacy-App", also eine "Anwendung aus älteren Zeiten".
Lassen wir die Kirche im Dorf: Klassische Anwendungen wie Loksim heißen "Desktop Apps" :) Von "veraltet" lese bei Microsoft direkt nichts. Manche interpretieren die Situation mit Metro auf diese Art, ich würde da eher ein wenig abwarten... Microsoft will ja bei Win8 gerade mit der Verknüpfung von "Tablet - Anwendungsfällen" und "klassischer PC-Nutzung" punkten.

Letztlich könntest Du alles so lassen, wie es ist, jedoch ist das nicht wirklich empfehlenswert, weil Win 8 jeden Simmer gefühlt 1000x fragen wird, ob er sich "mit dieser alten, möglicherweise schädlichen Software mögliche Sicherheitslücken" einfangen möchte.
...
Ich hab das grad mal ausprobiert. Die Meldungen von der Metro-Beta hören sich an, als wäre der Loksim ein Virus, würde Geld kassieren und den PC zum Explodieren bringen. Für uns hartgesottene Windowsianer und Loksimmer ist das kein Ding, das kennen wir ja schon seit Win 7, aber für neue Anwender klingt das so, als stünde der dritte Weltkrieg in ihrem Wohnzimmer aber sowas von kurz bevor!
Also ich habe das ganze mit der Developer Preview probiert, und dort habe ich bzgl. Sicherheitswarnungen keinen Unterschied zu Windows 7 feststellen können. Die Warnung der Benutzerkontensteuerung ist ja schon seit Win Vista bekannt, nur mit einem Zertifikat könnte man diese verschönern (freiwillige Spender vor ;) )
Könntest Du Screenshots von den Warnungen posten?

lg
Lukas

Offline lukash

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 1900
    • Loksim Tools Downloads
Re: @Lukas: Versionierung vom Loksim
« Antwort #10 am: Juli 17, 2012, 16:24:24 Nachmittag »
Ok, ab 2.8.1 erzeugt der Installer Einträge um die aktuell installierte Loksim-Version und den Pfad auslesbar zu machen:
HKEY_CURRENT_USER\SOFTWARE\Loksim-Group\Install    Value: LastInstalledVersion
HKEY_CURRENT_USER\SOFTWARE\Loksim-Group\Install    Value: InstallPath
Die gleichen Einträge werden auch unter LOCAL_MACHINE abgelegt, da die Installation ja eigentlich global pro Maschine passiert

Der alte Wert wird bei der Installation gelöscht:
HKEY_CURRENT_USER\Software\Loksim-Group\LokSim3D\Last Installed Version

Der Eintrag
HKCU\Software\Loksim-Group\Install\Paths
bleibt weiterhin gültig. Nur dieser kann mehrere Loksim-Versionen erfassen, bzw. enthält auch jene Versionen die nur gestartet aber nicht installiert wurden

lg
Lukas

Offline JohannesH

  • Betatester
  • Hero Member
  • **
  • Beiträge: 523
Re: @Lukas: Versionierung vom Loksim
« Antwort #11 am: Juli 21, 2012, 17:49:06 Nachmittag »
Hi Lukas,

sorry für das mit der "Any CPU", hab mal wieder verdrängt, dass der LokSim eine unmanaged Anwendung ist. Insofern fallen auch einige andere meiner Ausführungen weg (wie die "gefühlten 1000 Meldungen").

Für eine Zertifizierung langt aber sicher nicht bloß eine kleine Spende, sondern da müsstest Du richtig schuften. Ich verdiene ja mein Geld bei einer solchen Multi-Millionen-Dollar-Firma, und da sind genau diese Themen heißer als das Mittagessen.

Was Du "Desktop-Apps" sagst, ist genau das, was ich damit meinte, dass die großen Software-Buden sich dagegen stemmen. Genau dieser Konflikt zwischen den Marketing-Strategen bei MS und den Vertrieblern bzw. Key-Accountern ist es, was derzeit noch niemand einschätzen kann, wie es am Ende ausgehen wird. Ich meine, wir warten ja schon seit Win 2000 auf das neue, datenbank-basierte Filesystem...

Dennoch, das Umshiften von Datei-Locations halte ich für essenziell, einfach, um auch schon bei Win 7 Ordnung hinzukriegen und die Datein dahin zu packen, wohin sie gehören: Ausführbare Dateien, DLLs, Konfigurationen und Co. ins Programmverzeichnis, die anderen Kollegen (Strecken, Fahrpläne, Objekte etc.) ins Datenverzeichnis. Wenn Dir da nach nem Tool ist, sag Bescheid ;)

Oh, noch was: das mit dem Eintrag unter HKLM würde ich lassen. Eine Win 7-konforme Installation ist nämlich nicht global pro Maschine.

LG
JH

Offline lukash

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 1900
    • Loksim Tools Downloads
Re: @Lukas: Versionierung vom Loksim
« Antwort #12 am: Juli 22, 2012, 20:17:48 Nachmittag »
Hallo Johannes!
Oh, noch was: das mit dem Eintrag unter HKLM würde ich lassen. Eine Win 7-konforme Installation ist nämlich nicht global pro Maschine.
Hm, ich muss sagen, dass ich die Microsoft-Doku zu diesem Thema relativ unübersichtlich finde und ich mir deshalb absolut nicht sicher bin. Aber prinzipiell können Programme m.E. entweder pro Benutzer oder pro Maschine installiert werden. Wenn ich zB Office installiere, muss ich das ja auch nur einmal pro PC und nicht für jeden Benutzer machen?
Ich kann den Eintrag unter HKLM natürlich auch weglassen, dieser wäre nur für Tools gedacht. Für das Loksim-Programm selbst hat dieser keinen Mehrwert.
Zum Thema Application Registration finde ich nur diesen MSDN Artikel. So wirklich gefällt mir das aber auch nicht, denn damit soll ja anscheinend nur möglich sein, dass man zB Loksim3D.exe überall starten kann, ohne die PATH Variable zu ändern.
Ich hätte nur einen Platz in der Registry gesucht, wo ich eintragen kann, in welches Verzeichnis der Loksim installiert ist. So etwas dürfte scheinbar nicht standardisiert sein. Deiner Meinung sollte der Eintrag aus HKLM deshalb ganz raus oder an anderer Stelle?

Die sonstigen Änderungen des Loksims bei der nächsten Version bzgl. dieser Thematik sind in der Loksim Wiki dokumentiert. Noch ist Zeit, Beschwerden, Wünsche oder Anregungen vorzubringen ;)
Unsicher bin ich mir noch, welche Standardeinstellung für das Datenverzeichnis des Loksims vorgenommen werden sollte. Und nachdem geschätzt 90 % der Benutzer in der Installation einfach nur "Weiter" klicken, ist das schon ein relativ wichtiges Thema. Mir würden folgende Varianten einfallen:

  • Datenverzeichnis ist das selbe wie das Programmverzeichnis.
    NT: Bei jeder Package-Installation werden Admin-Rechte angefordert
    VT: Prinzipiell bleiben alle Daten in einem Verzeichnis, Benutzer kann den Ordner problemlos im Explorer durchsuchen
  • ProgramData Ordner
    NT: Kann nicht einfach so im Explorer durchsucht werden (versteckter Ordner)
    VT: Keine Admin-Rechte bei Package-Installation. "Verschmutzt" das Dokumente Verzeichnis nicht
  • Gemeinsame (Common) Dokumente
    VT: Keine Admin-Rechte bei Package-Installation. Problemlos vom Benutzer durchsuchbar
    NT: Ich persönlich finde es nicht so gut, wenn Programme Daten im Dokumenten-Verzeichnis ablegen

Den Artikel User Account Control for Game Developers würde ich so interpretieren, dass die Voreinstellung "Common Documents" am besten passt. Auch wenn es in diesem Abschnitt um Personal Documents geht.
Zitat
Attention should be given to the subtle usability differences between the user-specific folders specified by CSIDL_PERSONAL and CSIDL_LOCAL_APPDATA. The recommended practice for selecting the CSIDL constant to use for writing a file is to use CSIDL_PERSONAL if the user is expected to interact with the file, such as double-clicking on it to open it in a tool or application, and to use CSIDL_LOCAL_APPDATA for other files.

lg
Lukas

Offline JohannesH

  • Betatester
  • Hero Member
  • **
  • Beiträge: 523
Re: @Lukas: Versionierung vom Loksim
« Antwort #13 am: September 24, 2012, 18:01:39 Nachmittag »
Gnarf, sorry for being late... Hatte gar nicht gesehen, dass Du nochmals geantwortet hattest...

Also...

Hm, ich muss sagen, dass ich die Microsoft-Doku zu diesem Thema relativ unübersichtlich finde und ich mir deshalb absolut nicht sicher bin. Aber prinzipiell können Programme m.E. entweder pro Benutzer oder pro Maschine installiert werden. Wenn ich zB Office installiere, muss ich das ja auch nur einmal pro PC und nicht für jeden Benutzer machen?
Ich kann den Eintrag unter HKLM natürlich auch weglassen, dieser wäre nur für Tools gedacht. Für das Loksim-Programm selbst hat dieser keinen Mehrwert.
Zum Thema Application Registration finde ich nur diesen MSDN Artikel. So wirklich gefällt mir das aber auch nicht, denn damit soll ja anscheinend nur möglich sein, dass man zB Loksim3D.exe überall starten kann, ohne die PATH Variable zu ändern.
Ich hätte nur einen Platz in der Registry gesucht, wo ich eintragen kann, in welches Verzeichnis der Loksim installiert ist. So etwas dürfte scheinbar nicht standardisiert sein. Deiner Meinung sollte der Eintrag aus HKLM deshalb ganz raus oder an anderer Stelle?

Die Logik ist „eigentlich“ ganz einfach. Wenn eine Anwendung maschinenweit installiert ist, gehören die Einträge, die während der Installation geschrieben werden, alle nach HKLM. Wird die Anwendung user-bezogen installiert, gehören die Einträge nach HKCU. Einstellungen, die der User im Betrieb vornimmt (Tastenbelegungen zB), gehören nach HKCU. Knifflig wird die Sache, wenn User A die Anwendung nur für sich installiert, User B dieselbe Anwendung maschinenweit. Wohin sollen dann zB Packages installiert werden, wenn User B das macht? Soll User A die sehen (dürfen)? Immer? Nur, wenn User B Admin-Rechte hat? Da muss man sich vorher genau überlegen, welche Szenarien man gestatten will. Da das übliche Szenario für den Loksim wohl das sein dürfte, dass nur eine Person pro PC den Sim nutzt, würde ich auch nur das unterstützen, d.h. Erst-Installation maschinenweit, aber alles danach im User-Scope, also %LocalAppData% (nicht ProgramFiles!)

Hier sollte dann jedoch während der Installation so vorgegangen werden, dass Binaries, Hilfen etc. unter %ProgramFiles%, die Pakete jedoch bereits unter %LocalAppData% landen. In diesem Fall ist der Eintrag unter HKLM natürlich korrekt. Vielleicht erweiterst Du die Registry-Einträge so, dass Du keine Aufzählung machst, sondern einen Versionsbaum aufbaust, zB

HKLM\Software\LokSim-Group\2.8.1\Install
HKLM\Software\LokSim-Group\2.8.1\LokSim3D
und
HKLM\Software\LokSim-Group\2.9\...

Die entsprechenden Werte sollten nicht vom Installer, sondern von den jeweiligen EXEn geschrieben werden, und zwar „blind“.

Die „Anwendungsregistrierung“ halte ich für überflüssig.

Mit diesem Szenario hast Du Folgendes erreicht:
  • Trennung der Anwendung von den Anwendungsdaten ganz gemäß Microsoft-Vorgaben
  • Möglichkeit, die Anwendung per Cut&Paste auf der Festplatte herumzuschubsen bzw die schlichte Installation per XCopy („ClickOnce Deployment“)
  • Trotzdem können Tools auf alle Pfade zugreifen, die nötig sind (hierzu muss der Daten-Ordner unter %LocalAppData% natürlich fix sein!)
  • Das Auslesen der Loksim-Exe für Versionsfragen ist überflüssig

Das Einzige, was diese Lösung nicht bietet, ist, Mindest- und Höchstversionen von Daten (Paketen) ohne Analyse herauszukriegen. Solange diese Dateien jedoch weiterhin auf XML basieren, ist das ja kein großer Stunt, da mal kurz reinzuschauen.

LG
JH