【发布时间】:2018-11-19 11:57:13
【问题描述】:
这个错误快把我逼疯了。我有这个用 c# 制作的应用程序,几天前它运行良好,但自从我安装了 .net 本机预览后,它就作为后台进程启动并一直运行,直到它到达:MainWindow mainWindow = new MainWindow();那是它停止执行代码的时候......几秒钟后它从任务管理器中消失并将其写入事件日志:
Faulting application name: CryptoLight.exe, version: 1.0.0.0, time stamp: 0x54233e4c
Faulting module name: KERNELBASE.dll, version: 6.3.9600.17055, time stamp: 0x532943a3
Exception code: 0xe0434352
Fault offset: 0x00011d4d
Faulting process ID: 0xce8
Faulting application start time: 0x01cfd8428be7903d
Faulting application path: C:\Users\<Name>\Documents\Visual Studio 2013\Projects\CompleteCryptography\CompleteCryptography\bin\Release\CryptoLight.exe
Faulting module path: C:\WINDOWS\SYSTEM32\KERNELBASE.dll
Report ID: cf371a9b-4435-11e4-bef6-6894233c343e
Faulting package full name:
Faulting package-relative application ID:
或者这个:
Application: CryptoLight.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.OutOfMemoryException
Stack:
at MS.Internal.Resources.ResourceManagerWrapper.GetStream(System.String)
at MS.Internal.AppModel.ResourcePart.EnsureResourceLocationSet()
at MS.Internal.AppModel.ResourcePart.GetContentTypeCore()
at System.IO.Packaging.PackagePart.get_ContentType()
at System.Windows.Application.LoadComponent(System.Object, System.Uri)
at CryptoLight.MainWindow.InitializeComponent()
at CryptoLight.App.App_Startup(System.Object, System.Windows.StartupEventArgs)
at System.Windows.Application.OnStartup(System.Windows.StartupEventArgs)
at System.Windows.Application.<.ctor>b__1(System.Object)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
今天早些时候(我第一次遇到这个问题)我在启动应用程序时收到了一个Fatal CLR Error: 80004005,我想我已经通过删除重复的 .net 安装来修复它,但是这个问题在那之后就开始了..
编辑: 经过更多调试后,我终于找到了导致此错误的代码行:InitializeComponent(); in MainWindow()。为什么InitializeComponent(); 导致OutOfMemoryException,当我的应用程序仅使用 45 - 50 mb 并且我在 64 位 pc 上的 4 gb 中有大约 3 gb ram 空闲时,我得到了这个异常
【问题讨论】:
-
听起来像是递归方法调用。
-
@B.K.我的应用程序今天早些时候运行良好。而且我也没有修改代码
-
at MS.Internal.Resources.ResourceManagerWrapper.GetStream(System.String)应用程序是否正在尝试加载大型资源?另外,调试时是否向应用程序传递任何参数?这可能解释了在 Visual Studio 中调试和直接从发布文件夹运行它之间的区别。 -
@IlianPinzon 现在无论是否使用 Visual Studio 都会引发错误..
-
@IlianPinzon 我试过带参数和不带参数,除了主窗口本身之外,我的应用不会加载任何东西