我正在开发 WPF 应用程序,并希望从 ClickOnce 迁移到 MSIX 侧载,以便在公司内的文件共享上发布我的应用程序。我遇到的一个问题是 MSIX 应用程序的更新过程。目前,我的应用程序的更新仅在第二次打开应用程序时可见,因为第一次更新是在后台下载的。在 ClickOnce 中,我有处理此行为的启动脚本,但在 MSIX 中,我想要一个更干净的方法。
我已经看到应用程序安装程序可以包含更新设置,我可以在其中设置一些属性以获得我想要的行为。默认看起来像:
<UpdateSettings>
<OnLaunch
HoursBetweenUpdateChecks="0"
</UpdateSettings>
我希望它变成:
<UpdateSettings>
<OnLaunch
HoursBetweenUpdateChecks="0"
ShowPrompt="true"
UpdateBlocksActivation="true"/>
<ForceUpdateFromAnyVersion>true</ForceUpdateFromAnyVersion>
</UpdateSettings>
如果我尝试手动修改应用程序安装程序文件,我将无法再打开它,因为它会出现解析错误。我怎样才能做到这一点? Visual Studio 中是否有允许这样做的设置?我正在使用 Windows 应用程序打包项目模板来创建我的 MSIX 包。
如果有其他方法解决这个问题,我也很高兴听到。谢谢!
我认为这取决于
xmlns
文件本身中 <AppInstaller>
元素上的 .appinstaller
属性。
根据我的经验,如果将其设置为
http://schemas.microsoft.com/appx/appinstaller/2017/2
,则 ShowPrompt
元素中的 <OnLaunch>
属性将导致“无效的应用程序安装程序文件”类型错误,但如果将 xmlns
上的 <AppInstaller>
属性设置为http://schemas.microsoft.com/appx/appinstaller/2018
ShowPrompt
属性将被接受,并且文件将正确解析。