我正在开发一个 Compact Framework 2.0 项目,我正在尝试使用 Process.Start 从另一个程序“A”中启动一个程序“B”。我以前做过几次,但这次我遇到了一些奇怪的问题。
程序“B”确实启动了,但它会导致 MissingMethodException,基本上告诉我它缺少它引用的某个程序集。问题是程序集 .dll 就在那里,与程序“B”在同一个文件夹中。如果我双击程序“B”,它运行正常,没有 MissingMethodException,只有在程序“A”中使用 Process.Start 启动时才会出现此问题。我完全不知道这里发生了什么。我尝试设置 WorkingDirectory 属性,但没有成功。关于为什么程序在通过 Process.Start 执行时无法加载其引用的任何想法?谢谢
System.Diagnostics.Process proc = new System.Diagnostics.Process();
ProcessStartInfo startInfo = new ProcessStartInfo(programBFullPath, "argument");
//I've been changing these two properties, have tried shell execute with both false and true, tried setting working directory and not setting it also
startInfo.UseShellExecute = false;
startInfo.WorkingDirectory = programBDirectory;
proc.StartInfo = startInfo;
proc.Start();
编辑我只是想到了一些东西......程序“A”和程序“B”都使用程序“B”未加载的.dll。如果两个程序不能同时加载相同的 .dll,那就是问题所在。是这样吗?