Announcement

Collapse
No announcement yet.

Wann ist Update der Registry nötig

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wann ist Update der Registry nötig

    Ich habe eine Programm mit einer Automatisierungsschnittstelle. Im Rahmen der Erweiterung muss ich eine Methode ergänzen
    (am Ende der Methodenliste).

    Ist es nun nötig, das nur aufgrund dieser neuen Methode sich die Anwendung nochmalig Registriert (Registrierungsdaten in Registry aktualisiert), oder kommt das System auch ohne einen Registry-Update zurecht.

    Hintergrund: Da viele Kunden das System ohne Adminrechte betreiben (Teilweise mit Installation auf Netzlaufwerk) und das Update durch Austausch der Exe erfolgt, würde ich mir gerne einen einmaligen Start mit Adminrechten sparen bzw. den Hinweis (welcher mit Sicherheit von den meißten Kunden überlesen wird) auf die evtl. Notwendigkeit bezüglich Admin-Start sparen.

  • #2
    Hallo Bernhard,

    wenn man die ganze Knigge (... einmal veröffentlichte Interfaces dürfen nicht mehr verändert werden ...) beseite lässt, wäre folgendes denkbar:

    a) Das Interface wird am Ende erweitert, <b>ohne</b> die Versionsnummer bzw. die CLSID und IID zu ändern.

    b) Die neue TLB-Datei wird in das exakt gleiche Verzeichnis kopiert, in dem auch die Vorgänger-TLB liegt.

    c) Der Client sollte nun die neue Interface-Methode problemlos aufrufen können. Denn der Typbibliotheks-Marshaler von Win32 greift erst zur Laufzeit auf die TLB-Datei zurück, um dort den Bauplan für die im Arbeitsspeicher zu generierenden Proxy-/Stub-Objekte auszulesen. Solange die CLSID und IID identisch bleiben und die TBL im Dateisystem gefunden werden kann, sollte das funktionieren.

    P.S: Selbstverständlich ist so etwas gut geeignet, später bei der Fehlersuche mächtig für Ärger zu sorgen, wenn aus irgend einem Grund einmal die falsche TLB-Version im Verzeichnis landet

    Comment


    • #3
      Hallo Andreas,

      ich weiß: Interfaces dürfen nicht verändert werden. Aber ich hab schon getestet: Solange nuram Ende erweiterte wird und der Rest nicht verändert wird, gibt es mit Programmen die nur die ältere Schnittstelle erwarten kein Problem.<br>
      Und da VBS Probleme bereitet, wenn ein Objekt mehrere Interface bereitstellt (IInt1 für Version 1, IInt2 für Version 2, ...) muss ich (leider) die Erweiterungen in das default-Interface einbauen (immer schön am Ende).

      zu a, Versionsnummern werden nicht geändert

      zu b, Neue TLB-Datei (Ist in Exe) wird über alte Version kopiert

      zu c, Das ist dan gut.<br>Normalerweise erweitere ich die Schnittstelle erst im Rahmen eines neuen Releases (Und dort wird die neue Programmversion eh installiert). Aktuell muß ich im Rahmen eines Minor-Updates/Fixes eine Methode ergänzen. Und dies soll auch gehen, indem der Kunde einfach nur die Exe austauscht

      Comment

      Working...
      X