我有一个 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 查询键值 设置键值 创建子键 枚举子键 通知密钥更改 创建链接
有任何想法吗?(请!)