使用WiX 4与jpackage

12
我正在尝试使用jpackage为Windows打包一个应用程序。我正在使用Java 19和WiX 4。
Package Id      Version              Commands
---------------------------------------------
wix             4.0.0-preview.1      wix

java 19.0.1 2022-10-18
Java(TM) SE Runtime Environment (build 19.0.1+10-21)
Java HotSpot(TM) 64-Bit Server VM (build 19.0.1+10-21, mixed mode, sharing)

根据“打包工具用户指南”的说明,生成Windows安装包的要求如下:
WiX 3.0或更高版本是必需的。
然而,当尝试生成安装包时,我遇到了一个错误:
[09:26:34.026] Can not find WiX tools (light.exe, candle.exe)
[09:26:34.026] Download WiX 3.0 or later from https://wixtoolset.org and add it to the PATH.

问题的本质很明确。尽管没有明确写在任何地方,但jpackage不支持WiX 4
解决方案也很明确,我安装WiX 3。然而,这里出现了一个“问题”。WiX 3需要一个旧版本的.Net(3.5.1)或至少“Windows功能.Net 3.5.1”。然而,这正是我想避免的。
我的问题是,截至今天,是否有办法直接使用WiX 4jpackage一起使用?

“light”和“candle”不包含在“wix 4”中吗?我认为它们必须在PATH上才能被“jpackage”找到。 - undefined
@JornVernee,是的,在wix 4中,两个工具light.execandle.exe被一个名为wix.exe的通用工具所取代。新的wix.exe工具有一个选项可以将项目从wix 3转换到wix 4,这给了手动迁移已经由jpakagerwix 3生成的包的机会(只要其临时文件可用)。但我不知道这样做是否值得。我发现使用jpakager(或者如果我使用我的启动器与jlink)生成应用程序映像并使用inno setup进行安装程序更容易(因为依赖性更少)。 - undefined
3
你有关于这个问题学到更多的东西吗?有没有关于支持Wix 4的增强请求(我找不到任何相关的)? - undefined
1
只是补充一下,我也遇到了同样的问题。我正在使用 jpackage 版本:17.0.7,这是与我的 GraalVM v17 一起提供的 jpackage 版本。GraalVM v20 和 Wix 4 附带的 jpackage 是否兼容? - undefined
我也遇到了这个问题。我不情愿地下载了.Net 3.5.1和WiX 3,并成功制作了一个安装程序,但它无法运行。我不打算进一步调查,因为在WiX 4得到支持之前,这似乎都是一个次优解决方案。为了避免歧义,他们应该将要求更改为类似“需要WiX (>3.0 && <4.0)”。 - undefined
1
现在有一个增强请求来支持WiX v4:JDK-8319457。我们将看看是否会有所进展。 - undefined
1个回答

1
使用的解决方法(无需处理dotnet):
  1. WiX Toolset v3 releases下载
  2. 将存档解压到文件夹中
  3. 将文件夹添加到
  4. 重新启动终端以使PATH设置生效
  5. 再次尝试

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接