【发布时间】:2011-04-02 18:39:21
【问题描述】:
我有一个 WPF 应用程序,可以在我的 Vista 开发机器上运行良好,但不能在生产 XP 机器上运行。唯一的问题是调用 OpenFileDialog.Show()。一旦我调用该方法,应用程序就会在 XP 框上终止。
该问题不会触发异常。 (我在 try-catch 块中包围了该块,但无济于事。)当我单击 File->Open 应用程序并在 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 查询键值 设置键值 创建子键 枚举子键 通知密钥更改 创建链接有什么想法吗? (请!)
【问题讨论】:
-
System.Windows.Forms.OpenFileDialog是 WinForms 之一,不应在 WPF 中使用。
标签: c# wpf openfiledialog