Как преобразовать Assembly.CodeBase в путь к файловой системе на C#?C#

Место общения программистов C#
Anonymous
Как преобразовать Assembly.CodeBase в путь к файловой системе на C#?

Сообщение Anonymous »


У меня есть проект, в котором шаблоны хранятся в папке \Templates рядом с DLL и EXE.

Я хочу определить путь к этому файлу во время выполнения, но используя метод, который будет работать как в модульном тесте, так и в рабочей среде (и я не хочу отключать теневое копирование в NUnit!)

Assembly.Location бесполезен, поскольку возвращает путь к теневой копии сборки при запуске под NUnit.

Environment.CommandLine также имеет ограниченное применение, поскольку в NUnit и др. он возвращает путь к NUnit, а не к моему проекту.

Assembly.CodeBase выглядит многообещающе, но это путь UNC:

file:///D:/projects/MyApp/MyApp/bin/debug/MyApp.exe Теперь я могу превратить это в путь к локальной файловой системе, используя манипуляции со строками, но я подозреваю, что где-то в .NET Framework есть более чистый способ сделать это. Кто-нибудь знает рекомендуемый способ сделать это?

(В этом контексте абсолютно нормально создавать исключение, если путь UNC не является URL-адресом file:///)

Вернуться в «C#»