AppDomain.CurrentDomain.BaseDirectory // Directory using System.Reflection; Assembly.GetEntryAssembly().Location // Exe File Assembly.GetExecutingAssembly().GetName().Name // Program Name Assembly.GetEntryAssembly().GetName().Version; // GUID var assembly = typeof(Program).Assembly; var attribute = (GuidAttribute)assembly.GetCustomAttributes(typeof(GuidAttribute), true)[0]; var id = attribute.Value; // or (not sure how accurate this is anymore) static Assembly assembly = Assembly.GetExecutingAssembly(); static Mutex mutex = new Mutex(true, assembly.GetType().GUID.ToString()); public static string AssemblyDirectory { get { string codeBase = Assembly.GetExecutingAssembly().CodeBase; UriBuilder uri = new UriBuilder(codeBase); string path = Uri.UnescapeDataString(uri.Path); return Path.GetDirectoryName(path); } }