C#アプリケーションで、別のアプリケーションをロードします
Assembly assembly = Assembly.LoadFrom("tool.dll");
そしてそれを介して実行します
Type typeGame = assembly.GetType("com.Program");
object instanceOfMyType = Activator.CreateInstance(typeGame);
typeGame.InvokeMember("Run", BindingFlags.InvokeMethod, null, instanceOfMyType, null);
このロードされたアプリケーションは、現在の作業ディレクトリからファイルをロードします。単独で実行すると問題なく動作します。
しかし、上記のように別のアプリケーションにロードすると、作業ディレクトリが正しく、ファイルがそこにある場合でも、FileNotFoundExceptions が発生します。
また、作業ディレクトリを出力した場合
Console.WriteLine(Directory.GetCurrentDirectory());
ファイルが存在する正しいディレクトリを教えてくれます。