I have two exe files in the same folder, I can run exe2 from a button in exe1. Today I was observing a customer over a remote (terminal services) session and exe2 failed to
AppDomain.CurrentDomain.BaseDirectory returns the directory from where the current application domain was loaded. System.Environment.CurrentDirectory returns the current system directory.
In your case AppDomain.CurrentDomain.BaseDirectory is the best solution.