我创建了一个我真的很喜欢部署的简单应用程序,但是每当我将应用程序安装在不属于我的另一台机器上时,应用程序就会无声地崩溃。因为没有抛出任何错误或任何通知应用程序失败。对该问题的进一步研究使我查看了Windows保存的错误日志。我跟着异常<SystemArgument>
向右看了应用程序中的代码,但我不知道该怎么办,因为我做的任何更改都会在下次构建时被覆盖。这是我从错误日志中得到的:
EVENTDATA :
Application: bbcg.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
异常:
Info:System.ArgumentException Stack:位于MS.Internal.AppModel.ResourcePart.EnsureResourceLocationSet()的MS.Internal.Resources.ResourceManagerWrapper.GetStream(System.String)位于MS.Internal.AppModel.ResourcePart.GetContentTypeCore()at System.Wackows.Application.LoadComponent(System.Object,System.Uri)中的System.IO.Packaging.PackagePart.get_ContentType()位于Report_Form_Generator.App.InitializeComponent(),位于Report_Form_Generator.App.Main()
我没有想法,任何帮助都非常重要。如何避免此错误?
答案 0 :(得分:0)
您可以在应用程序中实现UnhandledException
和ThreadException
异常处理程序,以捕获未处理的异常并获取有关错误的更多信息:
static void Main()
{
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
}
static void Application_ThreadException(object sender, ThreadExceptionEventArgs ex)
{
// log the exception or do other work
}
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs ex)
{
// log the exception or do other work
}
答案 1 :(得分:0)
更改应用程序装配信息中的中性语言,从项目属性更改为无。