У меня есть проект, в котором шаблоны хранятся в папке \ Templates
рядом с DLL и EXE.
Я хочу определить этот путь к файлу во время выполнения, но с использованием техники, которая будет работать как в модульном тесте, так и в производственной среде (и я не хочу отключать теневое копирование в NUnit!)
Сборка. Местоположение
бесполезно, потому что оно возвращает путь теневой копии сборки при работе под NUnit.
Environment.CommandLine
также имеет ограниченное использование, потому что в NUnit и др. Он возвращает путь к NUnit, а не к моему проекту.
Assembly.CodeBase
выглядит многообещающе, но это UNC-путь:
file:///D:/projects/MyApp/MyApp/bin/debug/MyApp.exe
Теперь я мог бы превратить его в путь локальной файловой системы, используя строковые манипуляции, но я подозреваю, что есть более чистый способ сделать он где-то похоронен в .NET framework. Кто-нибудь знает рекомендуемый способ сделать это?
(Выдача исключения, если UNC-путь не является URL-адресом file: ///
, абсолютно нормально в этом контексте)