【问题标题】:Program runs on Win 7, but not on Win 8程序在 Win 7 上运行,但不在 Win 8 上运行
【发布时间】:2013-09-09 18:20:12
【问题描述】:

我有一个在 Windows 7(64 位)上编写的程序,可以在我的计算机上正确编译和运行。

但在其他计算机上(特别是在 Windows 8(64 位)上)该程序无法运行。当我尝试运行它时,它说我的程序已停止运行,它崩溃了。

我应该补充一下,两台计算机都安装了 .Net 4.5 版。

但是,如果我删除添加到表单中的所有组件(我使用的是 Visual Studio 2012 Express),它运行得很好。但我必须删除所有组件。只删除其中一些是行不通的。

有人听说过这件事吗?

【问题讨论】:

  • 使用调试器或 DebugDiag 或为 AppDomain.CurrentDomain.UnhandledException 编写事件处理程序来诊断崩溃。
  • “有人听说过这个吗?”不是可以在这里回答的问题。我敢肯定有人听说过这个,但你问的是一个模糊的、笼统的问题。您的问题中没有任何细节可以让我们甚至推测导致问题的原因,并且我们不会在此处进行推测和“列出非常广泛、模糊问题的可能原因”。
  • 谢天谢地,我确实获得了帮助我解决问题的信息,这就是我的想法。

标签: c# windows windows-8 windows-7


【解决方案1】:

感谢 Hans,我之前没有听说过 AppDomain.CurrentDomain.Unhandled 异常。

我的实际问题是我没有在 Windows 8 计算机上安装 VisualBasic,我正在尝试使用它们。从我的程序中删除它的引用修复了程序。

我用来查找问题的实际代码(在 Program.cs 中):

static void Main()
    {
        AppDomain currentDomain = AppDomain.CurrentDomain;
        currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);
     (...)   
    }
static void MyHandler(object sender, UnhandledExceptionEventArgs args)
    {
        Exception e = (Exception)args.ExceptionObject;
        Console.WriteLine("MyHandler caught : " + e.Message);
        Console.WriteLine("Runtime terminating: {0}", args.IsTerminating);
        MessageBox.Show("Handler caught: " + e.Message + "\nRuntime terminating: " + args.IsTerminating);
    }

【讨论】:

    猜你喜欢
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多