Есть ли способ получить путь к сборке, в которой находится текущий код? Я не хочу путь к вызывающей сборке, только тот, который содержит код.
В основном мой модульный тест должен прочитать некоторые тестовые файлы XML, которые расположены относительно DLL. Я хочу, чтобы путь всегда разрешался правильно, независимо от того, запускается ли dll-тестирование из TestDriven.NET, через графический интерфейс MbUnit или что-то еще.
Изменить : Люди, кажется, неправильно понимают, что я спрашиваю.
Моя тестовая библиотека находится в скажем
C: \ Projects \ MyApplication \ daotests \ Bin \ Debug \ daotests.dll
и я хотел бы получить этот путь:
C: \ Projects \ MyApplication \ daotests \ Bin \ Debug \
Три предложения пока что подводят меня, когда я запускаю из MbUnit Gui:
Environment.CurrentDirectory
дает c: \ Program Files \ MbUnitSystem.Reflection.Assembly.GetAssembly(typeof(DaoTests)).Location
дает C: \ Documents and Settings \ george \ Local Settings \ Temp \ .... \ DaoTests.dllSystem.Reflection.Assembly.GetExecutingAssembly().Location
дает так же, как и предыдущий.
packages
рядом с файлом sln. НО, когда вы компилируете и распространяете вещи, нет файла sln и каталога пакетов. Во время компиляции все необходимое (но не все) копируется в каталог bin. Лучше всего использовать сценарий пост-сборки, чтобы скопировать нужный файл.