我有一个C#WinForm应用程序,在某些时候需要重新启动它。
这样做的话,会引发以下错误:
无效的dll或未找到dll! :MyLib.Dll系统找不到指定的文件。 (来自HRESULT的异常:0x80070002)
应用关闭并尝试重新启动后,会弹出此错误。
此外,仅当应用程序安装在装有Microsoft .NET Framework 4.7的Windows Server 2008 R2 Standard上时,这种情况才会发生。
要求重新启动应用程序的代码是:
ProcessStartInfo = new ProcessStartInfo();
Info.Arguments = "/C timeout /T 5 /NOBREAK && \"" +
Application.ExecutablePath + "\"";
Info.WindowStyle = ProcessWindowStyle.Hidden;
Info.CreateNoWindow = true;
Info.FileName = "cmd.exe";
Process.Start(Info);
Application.Exit(0);
MyLib.dll 存在并且已正确引用。
出现错误消息后,如果我手动启动该应用程序,则可以正常运行。
关于这可能导致此错误的任何线索吗?
答案 0 :(得分:0)
调查“找不到DLL”问题的常用技术是使用tools监视用于定位丢失的DLL的位置。
如果DLL确实存在于预期位置,例如与可执行文件位于同一文件夹中,则问题可能是由于另一个文件夹被设置为工作目录这一事实引起的。