C# Assembly Infos einer externer DLL auslesen?

roker002

Commander
Registriert
Dez. 2007
Beiträge
2.103
Ich bin gerade am Errorreport am basteln... eigentlich schon fertig. Mich würde aber interessieren, ob man die Assembly der anderen DLLs auslesen kann, ohne eine direkten Verweis auf die DLL selbst. Also als FileStream einlesen und dann die Assemblydaten laden.

Habe im google nichts gefunden, naja kann ja daran liegen dass die Stichwörter falsch ausgesucht wurden.
 
Ne über Reflection Namespace.

Code:
System.Reflection.Assembly info = System.Reflection.Assembly.GetExecutingAssembly();
String FileVersion = "\r\nAssembly Infos:" + info.FullName;

ehe so... aber hier kann ich nur die Assembly Infos über die DLL auslesen in der ich bin.

EDIT

So... ich konnte teilweise durch Googlen und durch ausprobieren herausfinden wie man Assembly Infos bekommen kann... Hier ist der Code.

Code:
[COLOR="RoyalBlue"]String _Path = "...";
string [] Files = System.IO.Directory.GetFiles(_Path, "*.dll" , SearchOption.TopDirectoryOnly) ;
String result = String.Empty;
foreach (string CurrentFile in Files) 
{
    Assembly assembly = Assembly.LoadFrom(CurrentFile);
    result += assembly.FullName + "\r\n";
}
MessageBox.Show(result);[/COLOR]
 
Zuletzt bearbeitet:
roker002 schrieb:
Ne über Reflection Namespace.

Code:
System.Reflection.Assembly info = System.Reflection.Assembly.GetExecutingAssembly();
String FileVersion = "\r\nAssembly Infos:" + info.FullName;

ehe so... aber hier kann ich nur die Assembly Infos über die DLL auslesen in der ich bin.

weist es eh schon, es gibt die moeglichkeit es einzulesen, sogar ohne es zu laden..
Code:
System.Reflection.Assembly.LoadFile(....
Oder eben ReflectionOnly

lg
oli
 
jo danke Leute! Fertiger Code Steht oben :D

Noch eine Frage... wie kann ich auch EXE in die SearchPattern einbauen?

EDIT

So habs jetzt aus herausgefunden. Braucht bisschen Workaround aber was solls.

Code:
[COLOR="Teal"]List<String> Files = new List<String>[/COLOR](System.IO.Directory.GetFiles(_Path, "*.dll" , SearchOption.TopDirectoryOnly));
Files.[COLOR="Teal"]AddRange[/COLOR]((System.IO.Directory.GetFiles(_Path, "*.exe" , SearchOption.TopDirectoryOnly)));
String result = String.Empty;
foreach (string CurrentFile in Files) 
{
    Assembly assembly = Assembly.LoadFrom(CurrentFile);
    result += assembly.FullName + "\r\n";
}
MessageBox.Show(result);

Füge zu der Vorhandene Liste einfach die andere Liste hinzu... und fertig!
 
Zuletzt bearbeitet:

Ähnliche Themen

Zurück
Oben