Ich habe eine Anzahl von Klassen, die IDessertPlugin
implementieren. Diese befinden sich in verschiedenen DLLs, die ich MEF verwende, um Instanzen von ihnen als Plug-in-Funktionalität in meiner Anwendung zu drehen.
Also möchte ich die Versionsnummer der DLLs anzeigen, von denen ich Plugins mit MEF geladen habe. Ein oder mehrere Plugins sind in einer oder mehreren DLLs definiert, die ich in meiner Anwendung geladen habe.
Im Moment mache ich so etwas:
%Vor%Und das wird Plugins einfach aus dem Plugins-Unterverzeichnis laden, in dem meine Anwendung läuft.
Mache etwas wie
%Vor%gibt einfach "System.ComponentModel.Composition, Version = 4.0.0.0, ..."
zurückWas ich zu wissen hoffte, war, dass ich Version 1.0 von CakePlugins.dll und Version 1.1 von IceCreamPlugins.dll habe. Die Plugins selbst haben kein Versionsattribut - ich möchte mich auf die Version der DLL verlassen. Hoffnung, die Sinn macht.
Ich habe nicht herausgefunden, welche DLLs ich dort verwende, damit ich Assembly.GetName().Version
für sie aufrufen kann.
Ideen?
Lösung:
Also, die Lösung für mein Problem war ziemlich einfach, nachdem die Teile zusammengesetzt wurden.
Mein Plugin-Verwaltungscode hat einen Eintrag wie folgt:
%Vor%und sobald die Zusammenstellung der Behälterteile stattgefunden hat, könnte ich meine Plug-Ins wie folgt durchlaufen:
%Vor%Ich habe eine Anzahl von Klassen, die %code% implementieren. Diese befinden sich in verschiedenen DLLs, die ich MEF verwende, um Instanzen von ihnen als Plug-in-Funktionalität in meiner Anwendung zu drehen.
Also möchte ich die Versionsnummer der DLLs anzeigen, von denen ich Plugins mit MEF geladen habe. Ein oder mehrere Plugins sind in einer oder mehreren DLLs definiert, die ich in meiner Anwendung geladen habe.
Im Moment mache ich so etwas:
%Vor%Und das wird Plugins einfach aus dem Plugins-Unterverzeichnis laden, in dem meine Anwendung läuft.
Mache etwas wie
%Vor%gibt einfach "System.ComponentModel.Composition, Version = 4.0.0.0, ..."
zurückWas ich zu wissen hoffte, war, dass ich Version 1.0 von CakePlugins.dll und Version 1.1 von IceCreamPlugins.dll habe. Die Plugins selbst haben kein Versionsattribut - ich möchte mich auf die Version der DLL verlassen. Hoffnung, die Sinn macht.
Ich habe nicht herausgefunden, welche DLLs ich dort verwende, damit ich %code% für sie aufrufen kann.
Ideen?
Lösung:
Also, die Lösung für mein Problem war ziemlich einfach, nachdem die Teile zusammengesetzt wurden.
Mein Plugin-Verwaltungscode hat einen Eintrag wie folgt:
%Vor%und sobald die Zusammenstellung der Behälterteile stattgefunden hat, könnte ich meine Plug-Ins wie folgt durchlaufen:
%Vor%Also, die Lösung für mein Problem war ziemlich einfach, nachdem die Teile komponiert wurden. Ich habe versucht, in die MEF-Objekte selbst zu graben, anstatt in den Container zu schauen, der alle Plug-ins enthält, die ich geladen habe. Die Antwort war, die Tatsache, wie diese Plug-ins geladen wurden, völlig zu ignorieren und nur die instanziierten Objekte selbst zu betrachten.
Mein Plugin-Verwaltungscode hat einen Eintrag wie folgt:
%Vor%und sobald die Zusammenstellung der Behälterteile stattgefunden hat, könnte ich meine Plug-Ins wie folgt durchlaufen:
%Vor%Sie können Baugruppeninformationen aus den verschiedenen Eigenschaften %code% , %code% und %code% erhalten.
%Vor% Sie können Baugruppeninformationen aus den verschiedenen Eigenschaften AssemblyVersion
, AssemblyFileVersion
und AssemblyDescription
erhalten.