@ christiandev это ответ, но может показаться, что это неправильный вопрос. Из вопроса довольно ясно, что это не веб-приложение, а сборка, запускаемая с помощью MbUnit. Тем не менее, ответ все еще не совсем корректен из-за теневого копирования в Asp.Net (хотя, возможно, это может быть тем, что ищет кто-то, занимающийся этим вопросом).
ли способ получить путь к сборке, в которой находится текущий код? Я не хочу путь к вызывающей сборке, только тот, который содержит код.
В основном мой модульный тест должен прочитать некоторые тестовые файлы XML, которые расположены относительно DLL. Я хочу, чтобы путь всегда разрешался правильно, независимо от того, запускается ли dll-тестирование из TestDriven.NET, через графический интерфейс MbUnit или что-то еще.
редактироватьЛюди, кажется, неправильно понимают то, что я спрашиваю.
Моя тестовая библиотека находится в скажем
C: \ Проекты \ MyApplication \ daotests \ Bin \ Debug \ daotests.dll
и я хотел бы получить этот путь:
C: \ Проекты \ MyApplication \ daotests \ Bin \ Debug \ Три предложения пока что подводят меня, когда я запускаю из MbUnit Gui:
дает
Environment.CurrentDirectory
c: \ Program Files \ MbUnit дает
System.Reflection.Assembly.GetAssembly(typeof(DaoTests)).Location
C: \ Documents and Settings \ george \ Local Settings \ Temp \ .... \ DaoTests.dll дает так же, как и предыдущий.
System.Reflection.Assembly.GetExecutingAssembly().Location
Это ваше решение: var dir = AppDomain.CurrentDomain.BaseDirectory;