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