C# WPF OpenFileDialog 在 XP 中导致崩溃,但在 Vista 中则不然

2024-04-17

我有一个 WPF 应用程序,可以在我的 Vista 开发计算机上正常运行,但不能在生产 XP 机器上运行。唯一的问题是调用 OpenFileDialog.Show()。一旦我调用该方法,应用程序就会在 XP 盒子上终止。

该问题不会触发异常。 (我已经用 try-catch 块包围了该块,但无济于事。)当我单击“文件”->“打开”应用程序时,就会在 XP 中退出。有趣的是,我可以使用“文件”->“保存”并使用“另存为”对话框将文件写入磁盘。我尝试将其构建为 .Net 3.0 和 3.5,但没有什么区别。

我尝试过 Microsoft.Win32.OpenFileDialog 和 System.Windows.Forms.OpenFileDialog 并得到完全相同的症状。

Microsoft.Win32 变体的代码块:



try  
{  
    OpenFileDialog ofd = new OpenFileDialog();
    if (ofd.ShowDialog().Value)
    {
        //do something
    }
}
catch (Exception ex)
{
    MessageBox.Show(ex.ToString(), "Error!");
}
  

我唯一的线索是安全事件日志中的以下(部分)条目。



Event Type:     Failure Audit
Event Source:   Security
Event Category: Object Access
Event ID:       560
Description:
Object Open:
        Object Server:  Security
        Object Type:    Key
        Object Name:    \REGISTRY\MACHINE\SOFTWARE\Microsoft\EnterpriseCertificates\Disallowed
        Accesses:       DELETE
                        READ_CONTROL
                        WRITE_DAC
                        WRITE_OWNER
                        Query key value
                        Set key value
                        Create sub-key
                        Enumerate sub-keys
                        Notify about changes to keys
                        Create link
  

有任何想法吗? (拜托!)


感谢您的建议。我验证了注册表权限和完全信任问题。事实证明,尽管我专门针对 .Net 3.0(基于标准组织映像)构建了我的应用程序,但我仍然不完全理解对 .Net 3.5 SP1 的依赖。我的问题的解决方案是在所有受影响的计算机上安装 .Net 3.5 SP1。

我只是想关闭循环。再次感谢所有贡献想法的人。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# WPF OpenFileDialog 在 XP 中导致崩溃,但在 Vista 中则不然 的相关文章

随机推荐