Benutzer mit den meisten Antworten
Registry Free / Isolated COM und Manifest Einträge

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
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++)- Als Antwort vorgeschlagen Jochen Kalmbach Donnerstag, 22. April 2010 11:28
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 22. April 2010 16:18
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 -
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
-
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++)- Als Antwort vorgeschlagen Jochen Kalmbach Donnerstag, 22. April 2010 11:28
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 22. April 2010 16:18