如何让 MSIX 应用安装程序在每次生成/发布期间输出正确的设置?

2024-05-11

问题:

如何获取 MSIXappinstaller在每次构建/发布期间输出正确的设置?

Context:

这是一个后续问题启用侧面加载后,为什么 MSIX 不会在每次应用程序运行时自动检查更新? https://stackoverflow.com/q/67271306/4630376

我在跑步:

  • Windows 10 20H2,操作系统内部版本 19042.928
  • Visual Studio 2019 社区版,版本 16.9.4

MSIX Windows 目标设置如下:

  • 目标版本 = Windows 10 版本 2004
  • 最低版本 = Windows 10 版本 1809

MSIX 安装程序项目创建了无效的appinstaller文件,这会阻止应用程序在每次运行时自动检查更新。我可以在每次构建/发布后手动更改文件,但我认为我不应该这样做,因为这似乎既弄巧成拙又错误。

一般来说,我几乎会忽略创建appinstaller每次,但文件都会自动增加版本号。所以,我目前似乎陷入了某种形式的手动干预,要么改变schema version and UpdateSettings部分或更新路径中的版本。这可能与运行 Visual Studio Community 版本有关吗?我需要专业人士才能让它发挥作用吗?

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 创建的应用程序安装程序:

<?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>

我们解决了即使启用了侧面加载,应用程序也不检查自动更新的问题。我们需要向应用程序安装程序类型的 MSIX 项目添加一个附加项。这将创建默认文件名 Package.appinstaller*。此文件提供 appinstaller 文件的配置设置,需要这些设置才能控制所有可用设置,包括 UpdateSettings 部分。

应用程序安装程序允许的一些附加功能是阻止用户在不更新的情况下运行应用程序。这是 ClickOnce 发布配置文件的一个问题,因为它为用户提供了跳过更新的选项;我们无法找到防止这种情况发生的方法。不过,MSIX 应用安装程序允许控制此行为。

*​请勿重命名此文件,因为构建/发布实用程序不会选择它并将设置应用到 APPINSTALLER 文件。这似乎是一个错误/静态文件引用。

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>

参考:

  • https://techcommunity.microsoft.com/t5/windows-dev-appconsult/handling-application-updates-with-app-installer-and-msix-in/ba-p/35538​​9 https://techcommunity.microsoft.com/t5/windows-dev-appconsult/handling-application-updates-with-app-installer-and-msix-in/ba-p/355389

附加参考资料:

  • http://thewindowsupdate.com/2019/02/22/handling-application-updates-with-app-installer-and-msix-in-windows-10-19h1/ http://thewindowsupdate.com/2019/02/22/handling-application-updates-with-app-installer-and-msix-in-windows-10-19h1/
  • https://learn.microsoft.com/en-us/windows/msix/app-installer/update-settings https://learn.microsoft.com/en-us/windows/msix/app-installer/update-settings
  • https://developercommunity.visualstudio.com/t/published-msixappx-does-not-check-for-updates-when/776276 https://developercommunity.visualstudio.com/t/published-msixappx-does-not-check-for-updates-when/776276
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让 MSIX 应用安装程序在每次生成/发布期间输出正确的设置? 的相关文章

  • cosmosdb 模拟器没有给出任何结果

    我不知道为什么在查询宇宙数据库时会发生这种情况 它不会显示任何文档 即使是 SELECT FROM c 但显示了 RU 但它与文档选项卡中的文档选项卡配合得很好 如果我使用任何过滤器 那么它也可以工作 但它不适用于 SQL 查询 我已经添加
  • Xamarin - SignalR 挂在连接上

    我正在尝试将我的 Xamarin 应用程序连接到托管在 Azure 上的 SignalR 后端 我遇到的问题是每次我在 HubConnection 上调用 StartAsync 时 它都会挂起客户端并且请求永远不会完成 我尝试通过应用程序进
  • WPF 4.0 InvokeCommandAction 兼容性 (System.Windows.Interactivity)

    当我在 WPF 4 0 中插入 InvokeCommandAction Blend 4 SDK 时遇到问题 用户控件未显示 并且我遇到了一些例外情况 登录底部 如果我的 xaml 代码中没有该行 就没有问题 但没有事件触发器 我已经在外部灯
  • Visual Studio:如何将图像资源存储为嵌入式资源?

    默认情况下 当您将图像 图标 位图等 作为资源添加到项目中时 该图像的构建行动被设定为None 这样做是因为图像神奇地存储在 resources 文件中 I希望将资源存储为嵌入式资源 我的原因无关紧要 但让我们假装这样我可以在里面看到它们R
  • 如何将代码标记为“不供将来使用”

    我经常遇到这样的情况 我想阻止其他开发人员继续使用某个方法或类 例如 假设我有两个库方法 A 和 B 其中 A 是执行某些任务的 旧 方法 B 是执行该任务的 新 方法 在许多情况下 A 和 B 有足够的不同 使得使用 A 开始使用 B 的
  • C#:将音频文件从服务器流式传输到客户端

    我目前正在编写一个应用程序 该应用程序将允许用户安装某种形式的应用程序 可能是 Windows 服务 该应用程序将在其 PC 上打开一个端口 并在硬盘上指定一个特定的目的地 然后能够流式传输 mp3 文件 然后 我将有另一个应用程序 该应用
  • 用 C# 编写的带有点击移动的 WPF 游戏

    我试图将标签网格移动到鼠标的位置 就像冒险游戏中的移动一样 理想情况下 我会在途中删除并重新绘制它们 但是 现在我只想弄清楚如何将 int 转换为厚度或 pointtoscreen 到目前为止我有 player XMove int Mous
  • 如何在 Visual Studio 中调用“组织导入”TypeScript 功能?

    TypeScript 2 8 中有一个新功能 可以让您 组织进口 https devblogs microsoft com typescript announcing typescript 2 8 2 organize imports ht
  • Visual Studio 2015 中的 React 没有智能感知

    我没有看到任何 ReactJS 的智能感知 例如像这样的方法React createClass虽然我看到 references js文件位于根文件夹 这 references js文件有各种 React js 文件的帮助参考 我的react
  • TabItem ContenTemplate 上 IsMouseOver 的触发器

    我对 TabItem 样式有疑问 也许你们中的某个人可以帮助我 遵循有问题的风格
  • 应用程序网关中的 SSL 证书到期日期

    我们有一个带有 SSL 证书的 Azure 应用程序网关 我们知道我们的证书即将过期 我们需要更新它 我们的问题是 我们无法获取网关信息中的实际到期日期 至少无法从门户获取 有人知道我们可以在哪里检索此信息吗 可能没有直接从 Azure 门
  • WPF:动画不流畅

    我正在制作一个动画TextBlock 60秒后增加FontSize从 8 点到 200 点 一切工作正常 除了我的动画随着文本的增长而上下移动 为什么会发生这种情况 是否可以避免这种情况 我有一个非常简单的 XAML 文件
  • 设置 Wpf 饼图样式

    这是我的饼图 xaml
  • 如何让 Debug.WriteLine 与其他进程一起工作?

    我有一个程序可以使用以下命令生成另外两个进程System Diagnostics Process 他们的输出被第一个程序捕获 players p Key StartInfo new ProcessStartInfo FileName arg
  • 从 StaticResource 设置 RowDefinition 高度

    在我的 WPF 样式中 我定义了一个标准网格行高 我想将其应用到几个地方 如下所示
  • 删除窗口的背景图像 WPF

    我在 WPF 中遇到问题 其中窗口在关闭后 应用程序的另一部分尝试写入图像之前不会释放其对背景图像文件的文件锁定 举个例子 假设我有一个 WPF 应用程序 由 3 个窗口 1 个 菜单 选择窗口和另外 2 个窗口组成 两个窗口都会创建一个I
  • 防止控制台应用程序中的内存工作集最小化?

    我想防止控制台应用程序中的内存工作集最小化 在Windows应用程序中 我可以这样做覆盖 SC MINIMIZE 消息 http support microsoft com kb 293215 en us fr 1 但是 如何在控制台应用程
  • Azure 网站服务器时区数据错误

    我来自俄罗斯 1 5 天前 10 月 26 日凌晨 2 点 我们的时区 好吧 我们时区的偏移量 发生了变化 从 UTC 4 变为 UTC 3 请不要问为什么现在 政府已经退出了 但它改变了 我家的Win 8 1机器自动更新 但我的 Azur
  • TextBlock TextWrapping 不换行 #2

    好吧 那么this https stackoverflow com questions 6625177 textblock textwrapping not wrapping解决方案没有帮助 XAML 在这里
  • 无论我将其添加到何处,Azure 应用程序服务(节点)CORS 源都无法工作

    Azure CORS 设置似乎根本不起作用 除非我指定 任何和所有请求都将返回 has been blocked by CORS policy Response to preflight request doesn t pass acces

随机推荐

  • 有没有办法将 Excel 单元格条目转换为一致的日期和时间格式?

    我正在处理雨量计数据记录器生成的 csv 文件中的一些雨量计数据 我发现日期和时间的记录不一致 以以下两种格式之一交替显示 Format 1 mm dd yyyy hh mm 24 hour clock or Format 2 mm dd
  • WordPress 访问

    我正在与朋友一起开发一个网站 使用Wordpress我们正在尝试从我的计算机和他的计算机访问同一个 WordPress 帐户 以便我们可以一起在网站上工作 我们尝试将彼此添加为管理员 但只能从创建管理员的计算机上访问新帐户 有谁知道如何做到
  • Android布局中如何实现Button的自动宽度

    我有几个垂直列出的按钮 我需要它们都具有相同的宽度 而且还要显示其中的所有文本 基本上我需要所有它们的宽度作为最大的宽度的包裹宽度 希望我解释得很好 现在 我已经有一种布局可以在我的 Samsung Galaxy S2 4 1 2 上运行
  • 基于 json 文件动态显示选择、复选框、日期选择器等

    对我之前的问题的补充 我根据 json 文件动态显示输入字段 现在我想根据它们的组显示选择项 复选框和日期选择器 我如何解决这个问题 我需要将这些元素推入computeJSON 但写入例如选择options item selection不管
  • 检测 SVGAnimatedString 的类名

    我在构建 SVG 地图时遇到问题 触发的功能 g 上的 onmouseover 不起作用 我当时用的 window onmouseover function e console log e target className 查看类名是否有问
  • 如何在 Java 中用 \n 替换 \\n

    我有一个string test first n middle n last 现在我想更换所有 n by n 我试过了test replaceAll n n and test replaceAll n n 但它们不起作用 有人有解决办法吗 T
  • 如果使用 unicode 字符,则从数据库中进行 SELECT 会出现问题

    我在用着latest带DatabaseLibrary的python和机器人框架版本 https franz see github io Robotframework Database Library api 1 0 1 DatabaseLi
  • 正则表达式没有按预期工作?

    我有这个正则表达式 new RegExp a z 0 9 ig 我正在测试一个不应该工作的字符串 vc 但它确实通过了测试 而且它不应该 new RegExp a z 0 9 ig test vc true 但如果我删除其中一个 or or
  • static_cast 和对指针的引用

    谁能告诉我为什么这不能编译 struct A struct B public A int main B b A a b B b1 static cast
  • 如何从 Ruby 2.0 中的字符串数组获取值

    我有这个字符串数组 array nike air nike steam nike softy nike strength smooth sleeper adidas air addidas jogar adidas softy adidas
  • 我无法从 Android 模拟器中删除日语 IME

    我已经多次看到这个问题 但答案总是 从 语言和键盘设置 菜单中取消选中 IME 问题是那里没有复选框 选择菜单 自定义区域设置 en US 菜单 设置 语言和键盘 选择语言 选择 英语 美国 菜单 设置 语言和键盘 日语输入法是唯一的输入法
  • opencv形态扩张滤波器作为最大滤波器

    就像中值滤波器的定义一样 我可以将 最大滤波器 定义为局部窗口 例如dst x y max 3x3 局部窗口像素 但我在opencv中找不到这样的过滤器 最接近的是 dilate 函数 然后我使用 dilate 函数的默认配置 但结果不正确
  • crashlyticsGenerateSymbolsRelease - 超出 GC 开销限制

    大约一周前 我们已成功将 crashlytics 集成到我们的 cocos2d x C 项目 ndk 14b 中 一切看起来都很好 但大约几天前任务 crashlyticsUploadSymbolsRelease 开始抛出此错误 Execu
  • 如何将js文件从同一文件夹导入chrome扩展中的background.js

    我在导入与 background js 脚本库 位于同一库中的文件 score js 时遇到问题 我对 js 和 chrome 扩展都很陌生 我研究了 require js 并做了这个 背景 html h1 Tab Manager h1
  • 显示葡萄牙语字符 Android

    我正在开发一个 Android 应用程序 当它应该写 n o 或 cabe a 等单词 例如带有 或 的字符 时 它会写 或 我已经检查过源文件编码 它是UTF 8 看起来 UTF8 被解释为 ISO 8859 x 理论上 你可以提供 ja
  • 如何制作复选按钮? (带有标签的隐藏复选框作为按钮:仅限 CSS)

    Using 方法1 创建可点击标签 https stackoverflow com a 6293626 1326147 用 CSS 隐藏复选框 https stackoverflow com a 18078908 1326147 and 使
  • 如何从字符串转换为数组?

    If s 1 2 3 4 5 我们如何从中获得一个整数数组 我想返回 5 个元素Array Int64 1 1 2 3 4 5 正如 isebarn 使用的那样 split s 对于将字符串拆分为单词非常有用 默认情况下按空格拆分 juli
  • 如何隐藏 URL 中的 ID

    我以前在 Stack Overflow 上见过这类问题 但没有一个真正有帮助 我也用谷歌搜索过 但没有骰子 我想知道如果用户单击选项卡本身是否可以隐藏 URL 中的 ID 这是网页 www planet nu dev new experia
  • Android:如何根据视图模型实时数据属性为片段编写单元测试?

    我的片段 UI 中有一个列表视图 其元素集取决于来自视图模型 LiveData 属性的值的状态 我想为片段创建工具测试 该片段包含与该属性的值集相关的 3 个场景测试用例 但我不知道从哪里开始 我的代码应该如下所示 class MyView
  • 如何让 MSIX 应用安装程序在每次生成/发布期间输出正确的设置?

    问题 如何获取 MSIXappinstaller在每次构建 发布期间输出正确的设置 Context 这是一个后续问题启用侧面加载后 为什么 MSIX 不会在每次应用程序运行时自动检查更新 https stackoverflow com q