0

我使用 InstallShield 2014 创建了一个基本 MSI 项目,为我的桌面应用程序生成 MSI 发布包。我正在使用 Installscript 规则文件作为自定义操作来为我的桌面应用程序安装依赖库和驱动程序包,并且它在 MSI 构建中按预期工作。

现在我想生成 UWP 应用程序版本,以便在 Windows 应用商店的 Windows 10 S 机器上安装相同的应用程序。所以我已经下载并安装了 Installshield 2016 专业版的试用版,它将支持我们从现有的 MSI 项目生成 UWP 应用程序包 - http://learn.flexerasoftware.com/IS-WBNR-InstallShield-2016-Whats-New

我已按照这些步骤从我现有的基本 MSI 项目生成 UWP 应用程序 - https://www.youtube.com/watch?v=0K5XTJ2aV6o。UWP 应用发布包 (.appx) 成功生成并安装在 Windows 10 机器上。但它忽略了我的自定义操作脚本,并且没有安装任何依赖库和驱动程序。我收到安装成功消息,但实际上,它什么也没安装。

我注意到构建日志并发现以下警告消息。看起来我的自定义脚本在 UWP 应用程序包中被忽略了。我们是否需要更改任何设置以使其接受我的自定义操作?

ISDEV: warning -9018: Custom action 'ISLockPermissionsCost' will be ignored
ISDEV: warning -9018: Custom action 'ISLockPermissionsInstall' will be ignored
ISDEV: warning -9018: Custom action 'MY_OLD_APP_REMOVAL' will be ignored
ISDEV: warning -9018: Custom action 'MY_DRIVERS_INSTALLATION' will be ignored
ISDEV: warning -9018: Custom action 'MY_DRIVERS_UNINSTALLER' will be ignored
ISDEV: warning -9018: Custom action 'MY_CONFIG_FILE' will be ignored
ISDEV: warning -9018: Custom action 'MY_SET_DEFAULT_OPTIONS' will be ignored

请为我提供解决此问题的方法。

4

1 回答 1

1

您对 UWP 应用程序包中可以完成的操作的期望不正确。首先阅读准备打包应用程序中记录的一些限制,其中列出了以下不受支持的场景:

  • 您的应用需要内核模式驱动程序或 Windows 服务。桥接器适用于应用程序,但不支持内核模式驱动程序或需要在系统帐户下运行的 Windows 服务。使用后台任务代替 Windows 服务。

  • 您的应用使用 System32/SysWOW64 文件夹中的依赖项。要使这些 DLL 正常工作,您必须将它们包含在 Windows 应用程序包的虚拟文件系统部分中。这可确保应用程序的行为就像 DLL 安装在System32/SysWOW64文件夹中一样。在包的根目录中,创建一个名为VFS的文件夹。在该文件夹中创建一个SystemX64SystemX86文件夹。然后,将 DLL 的 32 位版本放在SystemX86文件夹中,并将 64 位版本放在SystemX64文件夹中。

虽然后者可以按描述解决(通过正确安装它,而不是使用自定义操作来这样做——不,没有办法让构建处理自定义操作),驱动程序必须安装到机器本身上. 您可以选择为其其余部分创建一个 UWP 应用程序包(如果您愿意,可以将两者都安装为套件项目的一部分)。但由于对驱动程序的依赖,这样的应用不太可能适合商店。

于 2017-05-27T14:50:56.643 回答