Ich muss auf die Assembly meines Projekts in C # .NET2.0 zugreifen.
Ich kann die GUID im Dialogfeld "Baugruppeninformationen" unter Projekteigenschaften sehen und habe sie gerade in eine Konstante im Code kopiert. Die GUID wird sich nie ändern, daher ist dies keine so schlechte Lösung, aber es wäre schön, direkt darauf zuzugreifen. Gibt es eine Möglichkeit, dies zu tun?
ctrl+.
ist dein FreundSystem.AppDomain.DomainManager.get returned null.
für eine einfache Konsolen-App. ScheintAssembly.GetEntryAssembly()
der bevorzugte Weg zu sein.Eine andere Möglichkeit ist die Verwendung von Marshal.GetTypeLibGuidForAssembly .
Laut msdn:
quelle
Assembly.ReflectionOnlyLoad
und auch dann, wenn abhängige Assemblys nicht geladen werden.System.Runtime.InteropServices.Marshal.GetTypeLibGuidForAssembly(System.Reflection.Assembly.GetExecutingAssembly()).ToString()
. Sieht viel einfacher aus als die andere Methode. Gibt es Nachteile?Oder genauso einfach:
Funktioniert bei mir...
quelle
Sie sollten in der Lage sein, das Guid-Attribut der Baugruppe durch Reflektion zu lesen. Dadurch wird die GUID für die aktuelle Assembly abgerufen
Sie können das GuidAttribute auch durch andere Attribute ersetzen, wenn Sie Dinge wie AssemblyTitle, AssemblyVersion usw. Lesen möchten
Sie können auch eine andere Assembly laden (Assembly.LoadFrom und alle), anstatt die aktuelle Assembly abzurufen - wenn Sie diese Attribute externer Assemblys lesen müssen (z. B. beim Laden eines Plugins)
quelle
Für den Fall, dass jemand anderes nach einem sofort einsatzbereiten Arbeitsbeispiel sucht, habe ich dieses anhand der vorherigen Antworten verwendet.
Aktualisieren:
Da dies ein wenig Aufmerksamkeit erregt hat, habe ich beschlossen, eine andere Methode einzuschließen, die ich verwendet habe. Auf diese Weise können Sie es aus einer statischen Klasse verwenden:
quelle
Um die AppID zu erhalten, können Sie die folgende Codezeile verwenden:
Dazu müssen Sie die einschließen
System.Runtime.InteropServices;
quelle
Kein Glück hier mit den anderen Antworten, aber es ist gelungen, es mit diesem schönen Einzeiler herauszufinden:
Hoffe das hilft!
quelle