使用Installshield 2016生成UWP应用程序发布时忽略的自定义操作

问题描述:

我已经使用InstallShield 2014创建基本MSI项目来为我的桌面应用程序生成MSI发行包。我正在使用Installscript规则文件作为自定义操作来安装我的桌面应用程序的依赖库&驱动程序包,并且它按照预期在MSI构建中正常工作。使用Installshield 2016生成UWP应用程序发布时忽略的自定义操作

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

我已按照以下步骤从我现有的Basic 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 

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

您对UWP应用程序包可以做什么的期望不正确。通过阅读一些在Prepare to package an app记录的限制,其中,除其他事项外,它列出以下不支持的情况下的开始:

  • 你的应用程序需要一个内核模式驱动程序或Windows服务。该桥适用于应用程序,但不支持需要在系统帐户下运行的内核模式驱动程序或Windows服务。而不是Windows服务,使用后台任务。

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

而后者可以围绕如所描述的工作(通过正确地安装它,而不是使用自定义操作,这样做 - 不,有没有办法让编译处理自定义操作)时,驱动程序必须安装到机器上。您可以选择为其余部分创建一个UWP应用程序包(如果您愿意,可以将其作为套件项目的一部分安装)。但由于依赖于驱动程序,这样的应用程序不太可能适合商店。