WiX 5 与 .NET 8 CustomAction?

问题描述 投票:0回答:1

我有一个 WiX 4 项目,它引用当前为 .NET Framework 4.8 的 CustomAction。我计划将 WiX 项目升级到 WiX 5.0.0。升级 WiX 时可以将 CustomAction 项目升级到 .NET 8 吗?或者除了 .NET Framework 之外还有什么?我不想再将 .NET 4.8 作为先决条件。

wix wix5
1个回答
0
投票

我遇到了同样的问题;-),WixToolset v5 的限制。

我的解决方法是:

创建 .NET 8 CLI(命令行工具,带有参数/参数处理的控制台应用程序),并从 .NET 4.8 中的自定义操作调用此工具

WixToolset .NET 4.8 CustomAction 中的伪代码

[CustomAction]
public static ActionResult RunCommandLineTool(Session session)
{
    ProcessStartInfo psi = new()
    {
       // Define here your .NET 8 CLI program
       Filename = << PATH TO CLI v8 >>
       Arguments = << ARGS FOR CLI v8 (to execute the real custom action code) >>
       ...
    }
    using (Process process = Process.Start(psi))
    {
        ...
    }
    return ActionResult.Success;
}

确保 CLI 确实(仍然)存在于系统上。在安装过程中只能在“CopyFiles”序列之后调用自定义操作。在卸载期间,只能在“RemoveFiles”之前调用 CLI。或者 CLI 必须放置在 MSI 文件夹结构之外的“某个地方”。

© www.soinside.com 2019 - 2024. All rights reserved.