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

时间:2017-05-27 10:22:04

标签: uwp windows-store-apps release installshield-2016

我使用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项目https://www.youtube.com/watch?v=0K5XTJ2aV6o生成UWP应用。 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 个答案:

答案 0 :(得分: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项目的一部分安装)。但是由于对驱动程序的依赖,这样的应用程序不太适合商店。