我有一个 WPF 应用程序,可以在我的 Vista 开发机器上运行良好,但不能在生产 XP 机器上运行。唯一的问题是调用 OpenFileDialog.Show()。一旦我调用该方法,应用程序就会在 XP 框上终止。
该问题不会触发异常。(我已经在 try-catch 块中包围了该块,但无济于事。)当我单击“文件”->“打开”应用程序并在 XP 中退出时。有趣的是,我可以使用 File->Save 并使用 Save As 对话框将文件写入磁盘。我已经尝试将它构建到 .Net 3.0 和 3.5,但它没有任何区别。
我已经尝试过 Microsoft.Win32.OpenFileDialog 和 System.Windows.Forms.OpenFileDialog 并得到完全相同的症状。
Microsoft.Win32 变体的代码块:
尝试
{
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog().Value)
{
//做一点事
}
}
捕捉(例外前)
{
MessageBox.Show(ex.ToString(), "错误!");
}
我唯一的线索是安全事件日志中的以下(部分)条目。
事件类型:失败审计
事件来源:安全
事件类别:对象访问
事件编号:560
描述:
对象打开:
对象服务器:安全
对象类型:键
对象名称:\REGISTRY\MACHINE\SOFTWARE\Microsoft\EnterpriseCertificates\Disallowed
访问:删除
READ_CONTROL
WRITE_DAC
WRITE_OWNER
查询键值
设置键值
创建子键
枚举子键
通知密钥更改
创建链接
有任何想法吗?(请!)