从Installshield更改UWP应用程序的安装位置

时间:2017-05-29 15:10:17

标签: wpf uwp windows-store-apps installation-path installshield-2016

我创建了一个WPF桌面应用程序并使用Installshield生成MSI构建。我创建了一个MSI设置来在C:\ MyApp \ location中安装我的应用程序,而不是使用程序文件。按预期工作正常。

然后我生成了&使用相同的InstallShield项目测试了一个UWP应用程序。 Installshield 2016支持Desktop Bridge集成来执行此操作 - http://learn.flexerasoftware.com/IS-WBNR-InstallShield-2016-Whats-New

我注意到UWP应用程序安装在默认位置(C:\ Program Files \ WindowsApps),而不是使用Installshield中定义的位置。

我想从InstallShield项目更改此位置。请帮我找到解决此问题的方法。

2 个答案:

答案 0 :(得分:3)

对于UWP应用,我们无法在安装时更改其安装位置。

如您所知,默认情况下,UWP应用程序将安装在C:\Program Files\WindowsApps中。您可以在设置系统存储更改新内容的保存位置中的默认安装位置。 enter image description here
您可以从“新应用将保存到”下的下拉菜单中选择一个驱动器,然后点击应用。将在您选择的驱动器中创建一个名为“WindowsApps”的新文件夹。任何新的UWP应用程序都将安装在此文件夹中。请注意,Windows 10只会将新应用安装到当前选定的位置。现有应用程序不会移动到新位置。

如果您想更改单个应用的安装位置,则需要前往设置应用&功能然后点击移动按钮。 enter image description here
但是,这仅在您安装应用程序后才可用,并且只能将应用程序移动到另一个驱动器。无法将安装位置指定到其他文件夹,例如C:\MyApp\等。

答案 1 :(得分:0)

这有点XY question,所以这个答案可能与提出的问题没有明显关系。

了解UWP应用程序包的位置至少没有帮助。作为开发人员探索系统很好,但对于已发布的应用程序来说它几乎没用。相反,您需要另一种方式来启动您的应用。

UWP为start your app提供了一些方法:

前两个需要修改AppxManifest。由于InstallShield没有将此放在前面和中间,因此它提供了填充清单的这些部分的替代方法。 (第三个需要修改调用此应用程序的代码,因此我不会进一步讨论。)

协议

要从InstallShield填充协议处理程序,只需添加protocol handler to the registry。构建AppxManifest时,InstallShield将读取此注册并将其转换为清单的协议条目。

别名

要从InstallShield填充AppExecutionAlias,每个相关入口点只需App Paths registry keyApp Paths已安装HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths注册表项,您应该使用以下格式作为别名:

  

HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ App Paths \< alias.exe >

     

(默认)=< 路径\到\ your \ exe >

为简单起见,您的路径应该使用属性引用([ProgramFilesFolder]Company Name\Product Name\executable.exe)或组件引用([$componentid] - 通常是executable.exe或NewComponent23)。在构建AppxManifest时,InstallShield将读取此注册并将其转换为清单的别名条目。