Gibt es eine Möglichkeit, den Pfad für die Assembly abzurufen, in der sich der aktuelle Code befindet? Ich möchte nicht den Pfad der aufrufenden Assembly, sondern nur den, der den Code enthält.
Grundsätzlich muss mein Unit-Test einige XML-Testdateien lesen, die sich relativ zur DLL befinden. Ich möchte, dass der Pfad immer korrekt aufgelöst wird, unabhängig davon, ob die Test-DLL von TestDriven.NET, der MbUnit-GUI oder etwas anderem ausgeführt wird.
Bearbeiten : Die Leute scheinen falsch zu verstehen, was ich frage.
Meine Testbibliothek befindet sich beispielsweise in
C: \ projects \ myapplication \ daotests \ bin \ Debug \ daotests.dll
und ich möchte diesen Weg bekommen:
C: \ projects \ myapplication \ daotests \ bin \ Debug \
Die drei Vorschläge, die ich bisher gemacht habe, scheitern, wenn ich von der MbUnit Gui renne:
Environment.CurrentDirectory
gibt c: \ Programme \ MbUnitSystem.Reflection.Assembly.GetAssembly(typeof(DaoTests)).Location
gibt C: \ Dokumente und Einstellungen \ george \ Lokale Einstellungen \ Temp \ .... \ DaoTests.dllSystem.Reflection.Assembly.GetExecutingAssembly().Location
gibt das gleiche wie das vorherige.
packages
neben der SLN-Datei. ABER wenn Sie Dinge kompilieren und verteilen, gibt es keine sln-Datei und kein Paketverzeichnis. Während der Kompilierung werden die benötigten Dinge (aber nicht alles) in das bin-Verzeichnis kopiert. Am besten kopieren Sie die gewünschte Datei mit einem Postbuild-Skript.