应用程序无法启动

时间:2012-05-26 17:47:58

标签: c#

您好我已经创建了一个WinForms应用程序,我已经准备好在其他计算机上实现(我的)。我在其他地方运行时遇到了问题。

Program.cs文件中我得到了这个以查看问题所在:

static void Main()
{
   try
   {
       Application.EnableVisualStyles();
       Application.SetCompatibleTextRenderingDefault(false);
       Application.Run(new mainForm());
    }
    catch(SystemException ex)
    {
       MessageBox.Show("Error: ", ex.ToString());
    }
}

除了添加try/catch之外,这里没有编辑任何内容。我知道问题出现在Program.cs中,因为我已经设置了一系列消息框,以便在MainForm_Load()块的不同阶段显示。该应用程序没有达到任何一个。

这可能听起来很模糊,但我无法让这个应用程序在我的笔记本电脑以外的任何地方工作。它会成为我Usings中的一个吗?如果需要,我可以包括那些。

编辑2:根据Marko的建议,我将所有外部DLL复制到与我正在尝试运行的EXE相同的根文件夹中。第三个try-catch块抛出了来自Program.cs Application.Run(new mainForm());的异常,我将其追溯到mainForm.cs的第32行。在这一行,我有我的背景工作者:

private BackgroundWorker snBW = new BackgroundWorker();

我们离得更近了吗?

3 个答案:

答案 0 :(得分:2)

很棒很酷的问题。

有时,应用程序因缺少,损坏或关闭目标框架版本而失败。您可以查看应用程序所需的框架,完整或客户端配置文件,并在使用前进行安装。

由于该组件的Microsoft更新损坏,.Net 2.0经常出现问题。它不时发生在不同的机器上。解决方案是重新安装框架。

有时会在Windows 7,2008 Server上发生已停用.Net 3.5功能的问题。它可以在Windows的功能中激活。

许多.Net 3.5应用程序实际上需要.Net 3.5SP1。

答案 1 :(得分:0)

首先,检查您是否在计算机上安装了适当的.net框架。 其次,如果您正在使用任何外部库,请务必将所有必需的dll复制到应用程序文件夹。

答案 2 :(得分:0)

Form.Load事件处理程序不会在外部try-catch块的上下文中执行。 UI事件实际上是回调;你应该在每个处理程序中声明一个新的try-catch块,以便进行有效的调试。