Диалог просмотра файлов в Wix Installer

Я использую Wix Installer v3.9 для создания настроек. Я хочу открыть диалог просмотра файлов после завершения установки. Пользователь может выбрать несколько файлов из каталога. Затем эти пути к файлам должны передаваться в качестве аргументов командной строки в exe. Как я могу это сделать? Wix BrowseDlg позволяет выбирать только каталог.

Любая помощь приветствуется.

1 ответ

Решение

Насколько я знаю,wix toolset не имеет управления просмотром файлов. Поэтому я обычно использую C# Custom Action для этой работы.

Попробуйте этот образец и настройте его в соответствии с вашими потребностями.

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;
    }
}
Другие вопросы по тегам