如何让 MSIX 应用程序安装程序在每个 build/publish 期间输出正确的设置?
How do I get the MSIX appinstaller to output the correct settings during each build/publish?
问题:
如何让 MSIX appinstaller
在每个 build/publish 期间输出正确的设置?
上下文:
这是
的后续问题
我是运行:
- Windows 10 20H2,OS 内部版本 19042.928
- Visual Studio 2019 社区版,版本 16.9.4
MSIX Windows定位设置如下:
- 目标版本=Windows10,版本2004
- 最低版本=Windows10,版本1809
MSIX 安装程序项目创建了一个无效的 appinstaller
文件,这会阻止应用程序在每次运行时自动检查更新。我可以在每个 build/publish 之后手动更改文件,但我认为我不应该这样做,因为它似乎既弄巧成拙又错误。
一般来说,我几乎会忽略每次创建 appinstaller
,但文件会自动增加版本号。因此,似乎我目前坚持某种形式的手动干预,要么同时更改 schema version
和 UpdateSettings
部分,要么更新路径中的版本。这可能与 运行 Visual Studio 社区版有关吗?我需要 Professional 才能运行吗?
Visual Studio 创建的 Appinstaller,这是错误的:
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
Uri="https://<AppService>.azurewebsites.net/<AppName>.Setup.appinstaller"
Version="<AppVersion>" xmlns="http://schemas.microsoft.com/appx/appinstaller/2017/2">
<MainBundle
Name="<SomeGuid>"
Version="<AppVersion>"
Publisher="CN=<CertificateName>"
Uri="https://<AppService>.azurewebsites.net/<AppName>.Setup_<AppVersion>_Development_Test/<AppName>.Setup_<AppVersion>_x64_Development.msixbundle" />
<UpdateSettings>
<OnLaunch
HoursBetweenUpdateChecks="0" />
</UpdateSettings>
</AppInstaller>
我需要 Visual Studio 创建的 Appinstaller:
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
Uri="https://<AppService>.azurewebsites.net/<AppName>.Setup.appinstaller"
Version="<AppVersion>" xmlns="http://schemas.microsoft.com/appx/appinstaller/2018">
<MainBundle
Name="<SomeGuid>"
Version="<AppVersion>"
Publisher="<CertificateName>"
Uri="https://<AppService>.azurewebsites.net/<AppName>.Setup_<AppVersion>_Development_Test/<AppName>.Setup_<AppVersion>_x64_Development.msixbundle" />
<UpdateSettings>
<OnLaunch
HoursBetweenUpdateChecks="0"
ShowPrompt="true"
UpdateBlocksActivation="true" />
<AutomaticBackgroundTask />
<ForceUpdateFromAnyVersion>true</ForceUpdateFromAnyVersion>
</UpdateSettings>
</AppInstaller>
我们解决了应用程序不检查自动更新的问题,即使启用了旁加载。我们需要向 App Installer 类型的 MSIX 项目添加一个附加项。这将创建一个默认文件名 Package.appinstaller*。此文件提供 appinstaller 文件的配置设置,需要这些设置才能控制所有可用设置,包括 UpdateSettings 部分。
appinstaller 允许的一些附加功能是阻止用户 运行 应用程序而不更新。这是 ClickOnce 发布配置文件的一个问题,因为它为用户提供了跳过更新的选项;我们无法找到防止这种情况发生的方法。但是,MSIX 应用程序安装程序允许控制此行为。
* 请勿重命名此文件,因为 BUILD/PUBLISH 实用程序不会选取它并将设置应用到应用程序安装程序文件。这似乎是 BUG/STATIC-FILE-REFERENCE.
Package.appinstaller
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller Uri="{AppInstallerUri}"
Version="{Version}"
xmlns="http://schemas.microsoft.com/appx/appinstaller/2018">
<MainBundle Name="{Name}"
Version="{Version}"
Publisher="{Publisher}"
Uri="{MainPackageUri}"/>
<UpdateSettings>
<OnLaunch
HoursBetweenUpdateChecks="0"
ShowPrompt="true"
UpdateBlocksActivation="true" />
<AutomaticBackgroundTask />
<ForceUpdateFromAnyVersion>true</ForceUpdateFromAnyVersion>
</UpdateSettings>
</AppInstaller>
参考文献:
其他参考资料:
问题:
如何让 MSIX appinstaller
在每个 build/publish 期间输出正确的设置?
上下文:
这是
我是运行:
- Windows 10 20H2,OS 内部版本 19042.928
- Visual Studio 2019 社区版,版本 16.9.4
MSIX Windows定位设置如下:
- 目标版本=Windows10,版本2004
- 最低版本=Windows10,版本1809
MSIX 安装程序项目创建了一个无效的 appinstaller
文件,这会阻止应用程序在每次运行时自动检查更新。我可以在每个 build/publish 之后手动更改文件,但我认为我不应该这样做,因为它似乎既弄巧成拙又错误。
一般来说,我几乎会忽略每次创建 appinstaller
,但文件会自动增加版本号。因此,似乎我目前坚持某种形式的手动干预,要么同时更改 schema version
和 UpdateSettings
部分,要么更新路径中的版本。这可能与 运行 Visual Studio 社区版有关吗?我需要 Professional 才能运行吗?
Visual Studio 创建的 Appinstaller,这是错误的:
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
Uri="https://<AppService>.azurewebsites.net/<AppName>.Setup.appinstaller"
Version="<AppVersion>" xmlns="http://schemas.microsoft.com/appx/appinstaller/2017/2">
<MainBundle
Name="<SomeGuid>"
Version="<AppVersion>"
Publisher="CN=<CertificateName>"
Uri="https://<AppService>.azurewebsites.net/<AppName>.Setup_<AppVersion>_Development_Test/<AppName>.Setup_<AppVersion>_x64_Development.msixbundle" />
<UpdateSettings>
<OnLaunch
HoursBetweenUpdateChecks="0" />
</UpdateSettings>
</AppInstaller>
我需要 Visual Studio 创建的 Appinstaller:
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
Uri="https://<AppService>.azurewebsites.net/<AppName>.Setup.appinstaller"
Version="<AppVersion>" xmlns="http://schemas.microsoft.com/appx/appinstaller/2018">
<MainBundle
Name="<SomeGuid>"
Version="<AppVersion>"
Publisher="<CertificateName>"
Uri="https://<AppService>.azurewebsites.net/<AppName>.Setup_<AppVersion>_Development_Test/<AppName>.Setup_<AppVersion>_x64_Development.msixbundle" />
<UpdateSettings>
<OnLaunch
HoursBetweenUpdateChecks="0"
ShowPrompt="true"
UpdateBlocksActivation="true" />
<AutomaticBackgroundTask />
<ForceUpdateFromAnyVersion>true</ForceUpdateFromAnyVersion>
</UpdateSettings>
</AppInstaller>
我们解决了应用程序不检查自动更新的问题,即使启用了旁加载。我们需要向 App Installer 类型的 MSIX 项目添加一个附加项。这将创建一个默认文件名 Package.appinstaller*。此文件提供 appinstaller 文件的配置设置,需要这些设置才能控制所有可用设置,包括 UpdateSettings 部分。
appinstaller 允许的一些附加功能是阻止用户 运行 应用程序而不更新。这是 ClickOnce 发布配置文件的一个问题,因为它为用户提供了跳过更新的选项;我们无法找到防止这种情况发生的方法。但是,MSIX 应用程序安装程序允许控制此行为。
* 请勿重命名此文件,因为 BUILD/PUBLISH 实用程序不会选取它并将设置应用到应用程序安装程序文件。这似乎是 BUG/STATIC-FILE-REFERENCE.
Package.appinstaller
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller Uri="{AppInstallerUri}"
Version="{Version}"
xmlns="http://schemas.microsoft.com/appx/appinstaller/2018">
<MainBundle Name="{Name}"
Version="{Version}"
Publisher="{Publisher}"
Uri="{MainPackageUri}"/>
<UpdateSettings>
<OnLaunch
HoursBetweenUpdateChecks="0"
ShowPrompt="true"
UpdateBlocksActivation="true" />
<AutomaticBackgroundTask />
<ForceUpdateFromAnyVersion>true</ForceUpdateFromAnyVersion>
</UpdateSettings>
</AppInstaller>
参考文献:
其他参考资料: