Sometimes it becomes necessary to find out the directory where the current executing assembly is running. Among several ways to do the task , the following code–snippet can be employed to return the absolute location of the loaded file that contains the manifest:
|string currentAssemblyDirectoryName = Path.GetDirectoryName(|
Assembly.Location property returns the location of the assembly file after it is shadow-copied. In addition , if it is dynamically loaded using Load method, it returns empty string .
As stated in the comments below, if you are interested in retrieving the location of the assembly before it is shadow-copied or loaded, use
Assembly.CodeBase property instead. Please note that, it is the location specified originally while stating the AssemblyName.
5 thoughts on “Get Currently Executing Assembly’s Directory”
Thanks that was very helpgul
I’d add the required using declaration
Thanks & best regards,
Thx…exactly what I was looking for!
Assembly.GetExecutingAssembly().Location does not return the current path of the assembly.
Uri assemblyUri = new Uri(Assembly.GetExecutingAssembly().CodeBase);
string path = Path.GetDirectoryName(assemblyUri.LocalPath);
Indeed you are right in the case when you would like to get the location before the assembly is shadow-copied.