wix - OpenFileDialog 在 Win7 上失败

标签 wix wix3.5

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

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

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

非常感谢。

最佳答案

  // 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(); 

关于wix - OpenFileDialog 在 Win7 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3728535/

相关文章:

vb6 - 使用 WiX 安装 VB6 二进制文件

WiX:CopyFile 属性

c++ - Visual C++ Redistributable下载特定版本

wix - 如何在 Wix 中包含片段?

wix - 在 WIX MSI 描述中设置标题

wix - 复制整个目录及其所有内容

.net - 使用 WIX 在 IIS 应用程序池中设置 .NET 版本不起作用

mysql - 带有数据库 MYSQL 的 WiX

wix - 如何使用 WiX 安装程序包含 SQL CE?

wix - 判断该功能可用或不可用的条件