应用程序立即崩溃并出现 FileNotFoundException
Application crashes immediately with FileNotFoundException
这让我发疯所以希望有人能帮助!
我用 C# 开发了一个使用 CefSharp (Chromium) 组件的小型应用程序。此应用程序在安装了 VS2015 的任何 PC 上运行良好,但在非开发机器上立即崩溃,没有警告或异常对话框。
该解决方案是为 x86 构建的,问题出现在应用程序的发布或调试版本中。
我已经使用了 Assembly Binding Log Viewer (Fuslogvw.exe)
程序,但是它没有报告我的绑定有任何错误 - 所有报告都说正常。
Windows 错误日志:
Application: Launcher.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.IO.FileNotFoundException Stack: at Launcher.Program.Main()
任何人都可以建议我可以做些什么来尝试识别这个问题吗?
编辑:非开发 PC 上安装位置的目录列表。
16/12/2015 00:28 440,320 Launcher.exe
12/12/2015 10:59 1,688 Launcher.exe.config
16/12/2015 00:28 77,312 Launcher.pdb
16/12/2015 00:28 22,696 Launcher.vshost.exe
12/12/2015 10:59 1,688 Launcher.vshost.exe.config
30/10/2015 07:19 490 Launcher.vshost.exe.manifest
12/12/2015 10:55 2,197,289 cef.pak
12/12/2015 10:55 647,680 CefSharp.BrowserSubprocess.Core.dll
12/12/2015 10:55 11,264 CefSharp.BrowserSubprocess.exe
12/12/2015 10:55 974,336 CefSharp.Core.dll
12/12/2015 10:55 28,004 CefSharp.Core.xml
12/12/2015 10:55 139,776 CefSharp.dll
12/12/2015 10:55 23,040 CefSharp.WinForms.dll
12/12/2015 10:55 4,223 CefSharp.WinForms.xml
12/12/2015 10:55 230,962 CefSharp.xml
12/12/2015 10:55 296,406 cef_100_percent.pak
12/12/2015 10:55 403,210 cef_200_percent.pak
12/12/2015 10:55 3,873,562 cef_extensions.pak
11/12/2015 22:50 5,040 cloud.png
12/12/2015 10:55 2,106,216 d3dcompiler_43.dll
12/12/2015 10:55 3,466,856 d3dcompiler_47.dll
13/12/2015 00:34 5,976 debug.log
12/12/2015 10:55 4,405,316 devtools_resources.pak
12/12/2015 10:55 10,206,624 icudtl.dat
11/12/2015 22:50 2,051 launch.html
12/12/2015 10:55 50,612,224 libcef.dll
12/12/2015 10:55 75,264 libEGL.dll
12/12/2015 10:55 1,874,944 libGLESv2.dll
16/12/2015 22:13 0 list.txt
16/12/2015 00:30 <DIR> locales
12/12/2015 10:55 410,979 natives_blob.bin
11/12/2015 22:50 129,382 output.ico
11/12/2015 22:50 26,554 portal.png
16/12/2015 08:18 543,928 procdump.exe
15/12/2015 23:03 2,732 relnotes.txt
12/12/2015 10:55 463,528 snapshot_blob.bin
16/12/2015 00:30 22,952 unins000.dat
16/12/2015 00:30 1,197,891 unins000.exe
12/12/2015 10:55 202,240 widevinecdmadapter.dll
您是否引用了非开发机器找不到的文件?文件访问是发生在您自己的代码中还是发生在 CefSharp 组件中?
尝试在目标文件的代码之前放入 file.exists 检查并记录该结果
抱歉,如果这是您已经尝试过的方法。
使用 Windows Sysinternals(Microsoft TechNet 的一部分)中的 Process Monitor 来监控您的应用程序的文件 activity。
您会注意到记录了大量事件。其中大部分与访问注册表有关。但幸运的是,您可以安装不同种类的过滤器。如果您知道要分析的进程的名称,请按进程名称过滤。
您将看到该应用尝试访问哪些文件以及访问是否成功。
进程因未处理的异常而终止。异常信息:System.IO.FileNotFoundException
如果出现此错误,请确保安装了 Visual C++ 2012/2013 Redistributable。
http://www.codeproject.com/Articles/1058700/Embedding-Chrome-in-your-Csharp-App-using-CefSharp
这让我发疯所以希望有人能帮助!
我用 C# 开发了一个使用 CefSharp (Chromium) 组件的小型应用程序。此应用程序在安装了 VS2015 的任何 PC 上运行良好,但在非开发机器上立即崩溃,没有警告或异常对话框。
该解决方案是为 x86 构建的,问题出现在应用程序的发布或调试版本中。
我已经使用了 Assembly Binding Log Viewer (Fuslogvw.exe)
程序,但是它没有报告我的绑定有任何错误 - 所有报告都说正常。
Windows 错误日志:
Application: Launcher.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.IO.FileNotFoundException Stack: at Launcher.Program.Main()
任何人都可以建议我可以做些什么来尝试识别这个问题吗?
编辑:非开发 PC 上安装位置的目录列表。
16/12/2015 00:28 440,320 Launcher.exe
12/12/2015 10:59 1,688 Launcher.exe.config
16/12/2015 00:28 77,312 Launcher.pdb
16/12/2015 00:28 22,696 Launcher.vshost.exe
12/12/2015 10:59 1,688 Launcher.vshost.exe.config
30/10/2015 07:19 490 Launcher.vshost.exe.manifest
12/12/2015 10:55 2,197,289 cef.pak
12/12/2015 10:55 647,680 CefSharp.BrowserSubprocess.Core.dll
12/12/2015 10:55 11,264 CefSharp.BrowserSubprocess.exe
12/12/2015 10:55 974,336 CefSharp.Core.dll
12/12/2015 10:55 28,004 CefSharp.Core.xml
12/12/2015 10:55 139,776 CefSharp.dll
12/12/2015 10:55 23,040 CefSharp.WinForms.dll
12/12/2015 10:55 4,223 CefSharp.WinForms.xml
12/12/2015 10:55 230,962 CefSharp.xml
12/12/2015 10:55 296,406 cef_100_percent.pak
12/12/2015 10:55 403,210 cef_200_percent.pak
12/12/2015 10:55 3,873,562 cef_extensions.pak
11/12/2015 22:50 5,040 cloud.png
12/12/2015 10:55 2,106,216 d3dcompiler_43.dll
12/12/2015 10:55 3,466,856 d3dcompiler_47.dll
13/12/2015 00:34 5,976 debug.log
12/12/2015 10:55 4,405,316 devtools_resources.pak
12/12/2015 10:55 10,206,624 icudtl.dat
11/12/2015 22:50 2,051 launch.html
12/12/2015 10:55 50,612,224 libcef.dll
12/12/2015 10:55 75,264 libEGL.dll
12/12/2015 10:55 1,874,944 libGLESv2.dll
16/12/2015 22:13 0 list.txt
16/12/2015 00:30 <DIR> locales
12/12/2015 10:55 410,979 natives_blob.bin
11/12/2015 22:50 129,382 output.ico
11/12/2015 22:50 26,554 portal.png
16/12/2015 08:18 543,928 procdump.exe
15/12/2015 23:03 2,732 relnotes.txt
12/12/2015 10:55 463,528 snapshot_blob.bin
16/12/2015 00:30 22,952 unins000.dat
16/12/2015 00:30 1,197,891 unins000.exe
12/12/2015 10:55 202,240 widevinecdmadapter.dll
您是否引用了非开发机器找不到的文件?文件访问是发生在您自己的代码中还是发生在 CefSharp 组件中?
尝试在目标文件的代码之前放入 file.exists 检查并记录该结果
抱歉,如果这是您已经尝试过的方法。
使用 Windows Sysinternals(Microsoft TechNet 的一部分)中的 Process Monitor 来监控您的应用程序的文件 activity。
您会注意到记录了大量事件。其中大部分与访问注册表有关。但幸运的是,您可以安装不同种类的过滤器。如果您知道要分析的进程的名称,请按进程名称过滤。
您将看到该应用尝试访问哪些文件以及访问是否成功。
进程因未处理的异常而终止。异常信息:System.IO.FileNotFoundException
如果出现此错误,请确保安装了 Visual C++ 2012/2013 Redistributable。
http://www.codeproject.com/Articles/1058700/Embedding-Chrome-in-your-Csharp-App-using-CefSharp