none
Registry Free / Isolated COM und Manifest Einträge RRS feed

  • Frage

  • Hallo,

    ich bin gerade dabei "Isolated" oder "Registrey Free" COM auszuprobieren
    (also COM ohne WindowsRegistry).

    Für die DLL will ich dabei ein eingebettetes Manifest verwenden.

    In den Projekt-Einstellungen für meine DLL von Visual Studio 2005 kann man
    unter "manifest tool/isolated COM" den Namen der DLL angeben und
    die entsprechende RGS - Datei welche die Registry Informationen
    zu meiner CoClass enthält. Diese Informationen landen dann in dem
    Manifest der DLL und es kann ohne Registry gearbeitet werden.

    Das funktioniert auch so weit, aber leider kann ich nur eine RGS - Datei
    in den Projekteinstellungen angeben. Meine DLL enthält aber mehrere
    COM - Klassen und damit auch mehrere CoClasses bzw. RGS - Dateien.
    Ich habe schon probiert den Inhalt aller RGS - Dateien in eine große RGS - Datei
    zu kopieren und dann diese in den Projekteinstellungen zu verwenden.
    Das würde dann auch funktionieren.
    Aber leider erstellt das Visual Studio bei jeder neuen COM Klasse ja auch eine
    neue RGS Datei. Und dann hat man wieder das gleiche Problem.

    Hat vielleicht jemand irgendwelche guten Tips wie man mehrere RGS - Dateien
    automatisiert angeben könnte?

    Danke und Gruß
    Thomas

    Dienstag, 20. April 2010 09:16

Antworten

  • Hallo Thomas131176!

    > Wie man Manifest Dateien merged weiß ich schon, aber wie kann ich die
    > Information der RGS Dateien (bzw. die Registry-Information der CoClass)
    > als Manifest erzeugen um diese dann in der Manifest Datei der DLL zu mergen?

    Ich mach es immer so:
    1. Registriere die COM-DLL/OCX ganz normal
    2. Erzeuge eine simples WinForms, C# Anwendung
    3. Füge die COM-Referenz auf die entsprechenden COM-Klassen dem Projekt
    hinzu
    4. Setze bei der Wrapper-DLL das Property "Isolated" auf "True"
    5. Rebuild all

    Jetzt hat er eine wunderschöne Manifest-Datei erzeugt, welche alle
    notwendigen Einträge enthält ;)

    Vielleicht gibt es auch eine einfachere variante, aber so war es für
    mich am simpelsten...

    Greetings
    Jochen

    Jochen Kalmbach (MVP VC++)
    Dienstag, 20. April 2010 11:09

Alle Antworten

  • Ich arbeite gar nicht mit den rgs Dateien.

    Du könntest direkt die Manifest Dateien für jede Komponente erzeugen. Davon kannst Du beliebig viele Deinem Projekt hinzufügen und diese werden dann brav gemerged.


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Dienstag, 20. April 2010 10:12
    Moderator
  • Hallo,

    danke für die Antwort.

    Was meinst du mit Komponente (die DLL oder die COM Klasse)?

    Wie man Manifest Dateien merged weiß ich schon, aber wie kann ich die Information der RGS Dateien (bzw. die Registry-Information der CoClass)
    als Manifest erzeugen um diese dann in der Manifest Datei der DLL zu mergen?

     

    Gruß

    Thomas

    Dienstag, 20. April 2010 10:50
  • Hallo Thomas131176!

    > Wie man Manifest Dateien merged weiß ich schon, aber wie kann ich die
    > Information der RGS Dateien (bzw. die Registry-Information der CoClass)
    > als Manifest erzeugen um diese dann in der Manifest Datei der DLL zu mergen?

    Ich mach es immer so:
    1. Registriere die COM-DLL/OCX ganz normal
    2. Erzeuge eine simples WinForms, C# Anwendung
    3. Füge die COM-Referenz auf die entsprechenden COM-Klassen dem Projekt
    hinzu
    4. Setze bei der Wrapper-DLL das Property "Isolated" auf "True"
    5. Rebuild all

    Jetzt hat er eine wunderschöne Manifest-Datei erzeugt, welche alle
    notwendigen Einträge enthält ;)

    Vielleicht gibt es auch eine einfachere variante, aber so war es für
    mich am simpelsten...

    Greetings
    Jochen

    Jochen Kalmbach (MVP VC++)
    Dienstag, 20. April 2010 11:09