应用程序立即崩溃并出现 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