如果COM已在系统中注册,我有一个应检查的功能。可能会发生COM注册,但dll文件丢失 - 在这种情况下,函数也应该返回false。 MessageBoxes仅用于调试目的:
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上,不处理异常。应用程序在显示“?”后立即崩溃。
为什么?如何让我的应用程序处理异常......?
答案 0 :(得分:0)
我认为你的windows框架存在问题。
当Framework无法处理异常时,CLR无法进一步运行。意味着您的代码完全破坏了CLR的功能。
检查Windows 8的系统要求,如下面的链接说明所示。 我发现Windows 8的系统要求运行它。 http://msdn.microsoft.com/en-us/library/8z6watww.aspx