首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AppInstaller XML问题

AppInstaller XML问题
EN

Stack Overflow用户
提问于 2020-10-16 00:41:47
回答 4查看 2.2K关注 0票数 10

我试图跟踪Microsoft文档,但我不明白为什么我的appinstaller失败了:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller xmlns="http://schemas.microsoft.com/appx/appinstaller/2018" Uri="https://xxxxxx.blob.core.windows.net/installer/Package.appinstaller" Version="1.0.0.0">
    <MainPackage Name="MyApp" Version="12.21.289.0" Publisher="CN=xxxxxx" ProcessorArchitecture="x64" Uri="https://xxxxxx.blob.core.windows.net/installer/MyApp.msix"/>
    <UpdateSettings> <OnLaunch HoursBetweenUpdateChecks="1" /> <AutomaticBackgroundTask/> </UpdateSettings>
</AppInstaller>

如果我运行MSIX文件,它将按应有的方式安装。我一直在尝试这样做:https://learn.microsoft.com/en-us/windows/msix/desktop/azure-dev-ops,我得到了这个错误:

如果删除UpdateSettings属性,只会导致另一个错误:“Appinstaller消息:Appinstaller操作失败,错误代码为0x80D05011。详细信息:未知错误(0x80d05011)”

请帮帮忙。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-05-04 18:58:36

这是windows交付优化服务中的一个bug,我们目前所能做的只是一个解决办法。

开发人员:这个问题是由版本号的变化引起的,比如从1.0.9.9到1.0.10.0,如果让构建过程自动增加这些数字,就会很快发生。解决方法是将转到下一个版本up (1.1.0.0)。处理此问题的最佳方法可能是始终以基本版本0.100.100或0.1000.1000开始,否则将严重限制可用的总版本号。

用户:任务管理器、->服务、-> DoSvc ->、重启--这比重新启动系统要快一些,也更方便。

注意:服务的坏状态是由这个版本编号错误引起的,但是一旦它发生,重新启动是纠正它的唯一方法。

票数 7
EN

Stack Overflow用户

发布于 2021-08-29 21:07:45

经过三天的无望调试和几次试图找出这个问题的根源之后,我们终于找到了答案。查看下面的解决方法.

Range传递优化服务错误地缓存它检索的任何资源的大小(可以是追加安装程序文件或MSIX包),并在随后的请求中包含 HTTP报头,其字节范围值可能过期。

例如,如果您的appinstaller长725字节,那么Windows DO Service第一次发出格式良好的HTTP请求并下载整个XML。请求示例:

代码语言:javascript
运行
复制
GET https://foobar.com/baz.appinstaller HTTP/1.1
Connection: Keep-Alive
Accept: */*
Range: bytes=0-724
User-Agent: Microsoft-Delivery-Optimization/10.0
MS-CV: ......
Content-Length: 0
Host: foobar.com

但是,如果您已经在您的web服务器上更新了appinstaller文件,并且它的大小是增加的(例如,高达4096字节),那么DoSvc 仍然只请求最初的725字节,并且显然会得到它无法解析的损坏的XML。即使ETag被正确地处理并且已更改为appinstaller资源!

如果您的appinstaller文件大小减少了,则很可能会得到416范围不可满足

下面是来自Amazon的真实响应(我们在这里托管我们的appinstaller和MSIX包):

代码语言:javascript
运行
复制
HTTP/1.1 206 Partial Content
x-amz-id-2: ...
x-amz-request-id: ...
Date: Tue, 06 Apr 2021 21:45:12 GMT
Last-Modified: Tue, 06 Apr 2021 21:40:24 GMT
ETag: "af2d8bb5c638eca059cdb4dc6c694123"
Accept-Ranges: bytes
Content-Range: bytes 0-724/4096
Content-Type: application/appinstaller
Content-Length: 725
Server: AmazonS3

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller 
  Uri="https://tvd-packages.tradingview.com/beta/latest/win32/TradingView.appinstaller" 
  Version="1.0.0.1071"
  xmlns="http://schemas.microsoft.com/appx/appinstaller/2017/2">
  <MainPackage 
    Name="TradingView.Desktop" 
    Version="1.0.0.1071" 
    Publisher="CN=&quot;TradingView, Inc.&quot;, O=&quot;TradingView, Inc.&quot;, STREET=470 Olde Worthington Road Suite 200, L=Westerville, S=Ohio, PostalCode=43082, C=US" 
    ProcessorArchitecture="x64" 
    Uri="https://tvd-packages.tradingview.com/beta/1.0.0-beta.1.5/win32/x64/TradingView.msix" />
  <UpdateSettings>
    <OnLaunch HoursBetweenUpdateChecks="0" />
  </UpdateSettings>

<!--
- WHAT TH

你注意到Content-Range: bytes 0-724/4096和评论被切断了吗??这是由传递优化服务造成的格式错误的HTTP范围请求的结果。

解决方案:您已经猜到了吗?是的,只是不要改变安装程序的大小!例如,我们为它填充了多达4096字节的XML注释,如果我们需要向XML添加更多合理的内容,我们只需从XML注释中删除一些字符,使其再次变为4096字节。我们甚至在gitlab部署管道中进行了简单的大小测试,以确保appinstaller的大小不会意外更改。

您可以检查我们自2021年4月以来使用的当前生产应用程序:https://tvd-packages.tradingview.com/stable/latest/win32/TradingView.appinstaller

P.S.如果对同一个URL执行请求,就会出现问题。如果DoSvc更改,则HTTP逻辑将其作为不同的资源处理。这就是为什么appinstaller文件更有可能成为这个问题的受害者。

票数 11
EN

Stack Overflow用户

发布于 2020-10-20 00:34:08

如果这对任何人都有帮助的话,我找到了以下线索:https://techcommunity.microsoft.com/t5/msix-deployment/windows-10-2004-msix-not-updating-please-check-whether-the/m-p/1466701

基本上答案是重新启动你的机器。我做了,而且它似乎已经修好了

正如@ the -pademelon还提到的,重新启动传递优化服务也是有效的。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64381453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档