Wie bekomme ich die Versionsnummer jeder DLL, die meine MEF-Plugins enthält?

8

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ück

Was 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%     
itsmatt 07.08.2012, 15:02
quelle

2 Antworten

1
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ tag123net ___ Das .NET-Framework ist ein Software-Framework, das hauptsächlich für das Microsoft Windows-Betriebssystem entwickelt wurde. Es enthält eine Implementierung der Basisklassenbibliothek, Common Language Runtime (allgemein als CLR bezeichnet), Common Type System (allgemein als CTS bezeichnet) und Dynamic Language Runtime. Es unterstützt viele Programmiersprachen, einschließlich C #, VB.NET, F # und C ++ / CLI. NICHT für Fragen zu .NET Core verwenden. ___ qstnhdr ___ Wie bekomme ich die Versionsnummer jeder DLL, die meine MEF-Plugins enthält? ___ tag123mef ___ Das Managed Extensibility Framework (MEF) vereinfacht den Entwurf erweiterbarer und modularer Anwendungen und ist eine Standardkomponente von Microsoft .NET 4.0 und Silverlight 4.0 ___ qstntxt ___

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ück

Was 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%     
___ answer 11849543 ___

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%     
___ answer11848864 ___

Sie können Baugruppeninformationen aus den verschiedenen Eigenschaften %code% , %code% und %code% erhalten.

%Vor%     
___
itsmatt 07.08.2012, 15:47
quelle
2

Sie können Baugruppeninformationen aus den verschiedenen Eigenschaften AssemblyVersion , AssemblyFileVersion und AssemblyDescription erhalten.

%Vor%     
user854301 07.08.2012 15:07
quelle

Tags und Links