ClickOnce应用程序从HRESULT引发异常:0x80070002

时间:2018-06-26 08:33:14

标签: c#

我有一个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 存在并且已正确引用。

出现错误消息后,如果我手动启动该应用程序,则可以正常运行。

关于这可能导致此错误的任何线索吗?

1 个答案:

答案 0 :(得分:0)

调查“找不到DLL”问题的常用技术是使用tools监视用于定位丢失的DLL的位置。

如果DLL确实存在于预期位置,例如与可执行文件位于同一文件夹中,则问题可能是由于另一个文件夹被设置为工作目录这一事实引起的。