Frage

Ich versuche, eine schnelle und schmutzige Bereitstellung eines Projekts zu tun. Ich dachte, es wäre leicht, meinen Prozess zu laufen, ein Tool verwenden, um eine Liste aller geladenen Dateien (DLLs) zu greifen und diese Liste verwenden, um eine Kopie der Dateiliste für meine Testbereitstellung zu schaffen.

Nachdenken über filemon verwenden, aber es gibt eine Menge Lärm dort. Es ist ein .net-Projekt.

Danke.

War es hilfreich?

Lösung

Sie sollten in der Lage sein, .NET die Reflexion zu verwenden, um Ihre Anwendung AppDomain (n) und Dump eine Liste der geladenen Baugruppen und Standorte zu analysieren.

var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (var assembly in loadedAssemblies)
{
    Console.WriteLine(assembly.GetName().Name);
    Console.WriteLine(assembly.Location);
}

Andere Tipps

Process Explorer?

Schauen Sie sich AppDomain.GetAssemblies

For Each Ass As Reflection.Assembly In CurrentDomain.GetAssemblies()
    Console.WriteLine(Ass.ToString())
Next

Dies ist bereits in einer anderen Frage beantwortet.

Der Kern ist es aktuell Appdomain verwenden, um eine Liste von Baugruppen und Schleife durch ihren loader Standort zu erhalten.

Wenn ich Ihre Frage verstanden haben, eine schnelle Implementierung tun Sie in allen den Referenzen des Projekts, aber die Rahmen diejenigen, die Einstellung „Copy Local“ auf true gesetzt werden.

Auf diese Weise, wenn Sie Ihre Anwendung erstellen, werden Sie alle benötigten DLLs in Ihrem Ausgabeverzeichnis (gut haben, die fast alle durch Ihre Referenzen benötigt Referenzen werden nicht automatisch kopiert werden, so ist es am besten, sie als lokale Referenz hinzufügen zu ).

Hope, das hilft. Wenn nicht, einfach sagen, warum, ich werde versuchen, auf diese fortzusetzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top