【问题标题】:OpenFileDialog fails on Win7Win7 上的 OpenFileDialog 失败
【发布时间】:2010-09-16 16:10:04
【问题描述】:

我的安装程序需要打开一个文件浏览对话框。由于 WIX 没有提供文件浏览对话框,因此我编写了一个 C# dll,其中包含一个在自定义操作调用时调用标准 OpenFileDialog 的方法。然而,虽然这在 Win2003 中运行良好,但自定义操作在 Windows 7 上运行时只是挂起。它似乎达到了 ShowDialog() 调用然后停止。作为测试,我编写了一个单独的 Windows 窗体应用程序,其中包含一个对话框和按钮来调用 OpenFileDialog,并且正如预期的那样,它工作正常。我只是无法让 OpenFileDialog 从我的 msi 中出现!

我怀疑这可能是一个安全问题,所以我从以管理员身份打开的 msiexec 运行安装程序,但没有任何区别!

有没有人知道如何解决这个问题?

非常感谢。

【问题讨论】:

    标签: wix wix3.5


    【解决方案1】:
      // create a new thread with appropriate apartment state to launch UI 
      OpenFileDialog fileBrowser = new OpenFileDialog(); 
      Thread worker = new Thread(fileBrowser.Show); 
      worker.SetApartmentState(ApartmentState.STA);  // <-- here is the magic code 
      worker.Start(); 
      worker.Join(); 
    

    【讨论】:

      【解决方案2】:

      当我尝试此操作时,我发现它在其他 MSI 窗口之后弹出。直到我弄清楚这一点,它看起来就像一个挂起。

      出于这个和一大堆其他原因,我最终编写了一个定制的安装机制并放弃了 MSI。最终对用户和他们的系统更加友好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-14
        • 1970-01-01
        相关资源
        最近更新 更多