izpack:在 windows 7 上创建快捷方式

izpack: Create shortcut on windows 7

我使用 izpack 为我的应用程序创建安装程序。到目前为止,我已经能够创建安装程序,并且在我的 linux 机器上一切正常。
问题是在我测试的 windows 台机器上(Win7 6 位),安装程序没有显示快捷方式面板。
我确实阅读了文档故障排除部分,并注意我的安装程序中有本地人。
快捷方式 xml 文件也是如此,它们位于安装程序的资源路径中。我还读到它很可能是区分大小写的错字或类似简单但无法弄清楚的东西。这是我的快捷方式 xml:

<shortcuts>
<programGroup defaultName="SteamNet" location="applications"/>
<shortcut
    name = "One Click Wonder"
    target = "$INSTALL_PATH\oneclickwonder.bat"
    commandLine = ""
    workingDirectory= "$INSTALL_PATH"
    description="Minimal Desktop Timer"
    iconFile="$INSTALL_PATH\images\windows_icon.ico"
    iconIndex="0"
    initialState="noShow"
    programGroup="yes"
    desktop="yes"
    applications="yes"
    startMenu="yes"
    startup="yes"/>
</shortcuts>

这是我的 install.xml 文件:

<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>
<installation version="1.0">
  <info>
    <appname>Test</appname>
    <appversion>1</appversion>
  </info>
  <guiprefs width="600" height="480" resizable="no">
  </guiprefs>
  <locale>
    <langpack iso3="eng"/>
  </locale>
  <panels>
    <panel classname="ShortcutPanel"/>
  </panels>
  <packs>
    <pack name="Test" required="yes">
      <description>Description</description>
    </pack>
  </packs>
  <resources>
    <res src="shortcutSpec.xml" id="shortcutSpec.xml"/>
  </resources>
  <natives>
    <native type="izpack" name="ShellLink_x64.dll"/>
</natives>
</installation>

但是我无法在我的安装程序中显示快捷方式面板...!

我将其与此处的工作安装程序文件进行了比较,后者包含以下 <natives> 设置:

<natives>
    <native type="izpack" name="ShellLink.dll" />
    <native type="izpack" name="ShellLink_x64.dll" />
</natives>

使用 32 位 Java 运行时,将使用 32 位 ShellLink.dll,这在您的设置中缺失。

遗憾的是,ShortcutPanel 存在一些已知问题。经过大量 反复试验 测试后,我发现必须满足以下要求才能正确显示:

  • 快捷方式 XML 文件中的 <lateShortcutInstall/> 标记 必须仅在您要显示时存在 ShortcutPanel 之前 InstallPanel。如果您的 ShortcutPanel 在安装步骤之后出现, 您的快捷方式面板将不会显示!

  • 您的 <native> 标签必须包含在 <natives> 标签内,

  • <skipIfNotSupported />标签添加到<shortcuts>元素的开头,

  • 仔细检查您的快捷方式 XML 文件,因为它可能有不正确的属性名称 and/or 缺少引号。许多用户报告了此类问题,这可能是因为很多人从不正确的网站复制粘贴。可以找到快捷方式属性的规范 here

  • 检查本机 DLL 是否被打包到安装程序 JAR 中。对于 ShellLink DLL,解压 JAR 并查看内部:com/izforge/izpack/bin/native (and NOT com/izforge/izpack/bin/native/izpack/)1,

  • 最后,这有点微不足道,但请检查您的快捷方式 XML 文件是否在您认为的位置并且名称是否正确。


脚注:

  1. 我使用的是IzPack版本5.0.6.