首页 文章

使用Installshield 2016生成UWP应用程序版本时忽略自定义操作

提问于
浏览
0

我使用InstallShield 2014创建了一个Basic 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

请提供解决此问题的方法 .

1 回答

  • 1

    您对UWP应用程序包中可执行操作的期望是不正确的 . 首先阅读Prepare to package an app中记录的一些限制,其中列出了以下不支持的方案:

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

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

    虽然后者可以按照描述进行处理(通过正确安装它,而不是使用自定义操作来执行此操作 - 不,没有办法让构建处理自定义操作),驱动程序必须安装到计算机本身 . 您可以选择为其余部分创建UWP应用程序包(如果您愿意,可以将它们作为Suite项目的一部分安装) . 但是由于对驱动程序的依赖,这样的应用程序不太适合商店 .

相关问题