wix - Wix安装程序中的“文件浏览”对话框

标签 wix windows-installer wix3.9

我正在使用Wix Installer v3.9创建安装程序。安装完成后,我想弹出“文件浏览”对话框。用户可以从目录中选择多个文件。然后,这些文件路径必须作为命令行参数传递给exe。
我怎样才能做到这一点? Wix BrowseDlg仅允许选择目录。

任何帮助表示赞赏。

最佳答案

据我所知,wix工具集没有任何文件浏览控件。
所以我通常使用c#自定义操作来完成这项工作。

尝试此示例并根据您的需要对其进行自定义。

using WinForms = System.Windows.Forms;
using System.IO;
using Microsoft.Deployment.WindowsInstaller;

[CustomAction]
public static ActionResult OpenFileChooser(Session session)
{
    try
    {
        session.Log("Begin OpenFileChooser Custom Action");
        var task = new Thread(() => GetFile(session));
        task.SetApartmentState(ApartmentState.STA);
        task.Start();
        task.Join();
        session.Log("End OpenFileChooser Custom Action");
    }
    catch (Exception ex)
    {
        session.Log("Exception occurred as Message: {0}\r\n StackTrace: {1}", ex.Message, ex.StackTrace);
        return ActionResult.Failure;
    }
    return ActionResult.Success;
}

private static void GetFile(Session session)
{
    var fileDialog = new WinForms.OpenFileDialog { Filter = "Text File (*.txt)|*.txt" };
    if (fileDialog.ShowDialog() == WinForms.DialogResult.OK)
    {
        session["FILEPATH"] = fileDialog.FileName;
    }
}

关于wix - Wix安装程序中的“文件浏览”对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37137579/

相关文章:

c# - 如何在wix中显示自定义安装程序的登录信息

xml - Wix 安装路径注册表值分配 - 有什么问题?

wix - 错误4 : SELECT `Message` FROM `Error` WHERE `Error` = 2898

deployment - 从 KB 修补程序中提取产品代码以在 Bootstrap 中使用

.net - 常见的 DLL 在 WiX 中是否应该具有相同的组件 ID

wix - 如何在更新期间保留任务栏快捷方式?

维克斯 : Adding an entry to the GAC in Major Upgrade

wpf - WIX Bootstrapper 升级 - 如何静默卸载以前的版本

WIX - 在已安装文件夹内创建卸载快捷方式