Bitte schlagen Sie vor, welches Programm am besten zur Ausführung des Montageortes geeignet ist.
%Vor%oder
%Vor% Bitte schlagen Sie vor, was besser sein kann. Kann ich GetEntryAssembly()
auch verwenden?
hängt davon ab, was Sie wollen .. Assembly.GetAssembly
gibt die Assembly zurück wo type
deklariert ist.
Assembly.GetExecutingAssembly
gibt die Assembly zurück, in der current code
ausgeführt wird.
und Assembly.GetEntryAssembly
geben die process executable
zurück, bedenke, dass es sich nicht um deine ausführbare Datei handelt. zB:
Stellen Sie sich vor, Ihr Code ist in myexecutable.exe
und Sie haben dieses Szenario.
trdparty.exe
- & gt; verwendet Assembly.LoadFile
, um Ihre ausführbare Datei zu laden und Code durch Reflexion auszuführen
myexecutable.exe
- & gt; verwendet den Typ MyClass
, aber die trdparty.exe
patcht Ihren Code, um die neue Version von MyClass
in Patch.dll
Also jetzt .. Wenn Sie Ihre Anwendung selbst ausführen, erhalten Sie dieses Ergebnis
%Vor%Aber wenn Sie das vorherige Szenario haben, erhalten Sie
%Vor% als Antwort sollten Sie die verwenden, die das gewünschte Ergebnis liefert ..
Die Antwort mag offensichtlich sein, dass es Assembly.GetExecutingAssembly()
ist, aber manchmal nicht .. Stellen Sie sich vor, dass Sie versuchen, die Datei application.config
zu laden, die mit der ausführbaren Datei verknüpft ist Pfad des "Prozesses"
wie gesagt, hängt von dem Szenario ab .. und dem Zweck ...
Es scheint ziemlich offensichtlich: Wenn Sie die ausführende Assembly wollen, verwenden Sie GetExecutingAssembly
.
Manchmal haben Sie keinen, wenn Sie beispielsweise als Office-Add-In ausgeführt werden. Sie könnten stattdessen Assembly.GetAssembly
verwenden.
Tags und Links c# .net-assembly