1

我有一个功能应该检查 COM 是否已在系统中注册。可能会发生,COM 已注册,但缺少 dll 文件 - 在这种情况下,函数也应该返回 false。MessageBox 仅用于调试目的:

public bool IsCOMInstalled(string name)
{
    try
    {
        MessageBox.Show("?");
        var obj = Activator.CreateInstance(Type.GetTypeFromProgID(name));
        MessageBox.Show("!");
        return true;
    }
    catch (Exception e)
    {
        MessageBox.Show(e.Message);
        return false;
    }
}

在 Windows XP 和 7 以上工作正常。在 Windows Server 2008 上,不处理异常。应用程序在显示“?”后立即崩溃。

这是为什么?如何让我的应用程序处理异常...?

4

1 回答 1

0

我认为这是您的 Windows 框架的问题。

当框架无法处理异常时,CLR 无法进一步运行。意味着您的代码完全破坏了 CLR 的功能。

检查以下链接注释中维护的 Windows 8 的系统要求。我找到了运行 Windows 8 的系统要求。 http://msdn.microsoft.com/en-us/library/8z6watww.aspx

于 2013-09-09T11:55:47.263 回答