Assembly.Location дает простой путь к сборке. К сожалению, при запуске в теневой среде, такой как модульное тестирование или ASP.NET, этот параметр пуст. Однако свойство Codebase доступно и предоставляет URI, который можно использовать вместо него. В каких случаях он не возвращает URI, начинающийся с file:///
? Или, другими словами: в каких случаях это не сработает или даст непригодные результаты?
Assembly assembly = GetType().Assembly;
Uri codeBaseUri = new Uri(assembly.CodeBase);
string path = codeBaseUri.LocalPath;