![Windows 10:配置的应用程序未正确安装,版本正确但应用程序和数据为 0 字节](https://linux22.com/image/739978/Windows%2010%EF%BC%9A%E9%85%8D%E7%BD%AE%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%9C%AA%E6%AD%A3%E7%A1%AE%E5%AE%89%E8%A3%85%EF%BC%8C%E7%89%88%E6%9C%AC%E6%AD%A3%E7%A1%AE%E4%BD%86%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%92%8C%E6%95%B0%E6%8D%AE%E4%B8%BA%200%20%E5%AD%97%E8%8A%82.png)
我正在尝试将应用程序配置为在审核模式下准备的映像的一部分,然后进行系统准备并捕获。该应用程序是侧载的,因为它是一个业务线应用程序,并且是 Windows Enterprise 2019 LTSC 版本 1809 内部版本 17763.107。
我基本上遵循这些指示。
然而,我立即遇到了一些问题,因为侧载要求适用于我,因为:
- 它不会加入工作组
- 不会加入活动目录
- 正在运行 Windows 10 企业版
- 没有运行 Windows Embedded 8
因此我继续配置电脑以开发 Windows 应用。组策略管理编辑器不可用(可能是因为平板电脑未连接到组策略),但我找到了本地组策略编辑器。在其中我可以启用“允许安装所有受信任的应用程序”,但我找不到“允许在未安装开发人员许可证的情况下开发 Windows 应用程序”。相反,我找到了“允许开发 Windows 应用商店应用程序并从 IDE 安装它们”,所以我启用了它。
我在 Visual Studio 2017 中创建应用程序包并以审核模式将它们复制到设备。
我将包中的证书添加到受信任的根证书中。
我跑Add-AppxProvisionedPackage -Online -PackagePath C:\Path\To\Package\App.msixbundle -SkipLicense
我没有收到任何错误,并且脚本的唯一输出是:
小路 :
在线:真实
RestartNeeded :False
如果我使用检查,Get-AppxProvisionedPackage
我会看到应用程序具有正确的版本。
我按照说明进行系统准备这里并且 sysprep 处理一切正常并且关闭。
我重新启动并从 WinPE 驱动器启动,并根据说明使用 DISM 将映像捕获到同一个 USB 驱动器中这里。由于我要捕获到 ntfs 驱动器,因此我跳过了拆分步骤。
我再次重新启动并从同一个 USB 启动,并根据说明部署映像这里。
部署后,我再次重新启动并进行 OOBE。OOBE 后,我在开始菜单上看到了该应用程序,但按下它没有任何反应,如果我检查它的属性,版本是正确的,但它说应用程序是 0 字节,数据是 0 字节。但是图标是正确的。
我试着浏览微软关于这个主题的文章,有一段时间我以为我找到了解决方案此服务器故障线程但是“Add-AppxProvisionedPackage”不会引发错误,所以它似乎不是同一个问题。
任何关于如何继续的建议都将不胜感激,因为我几乎没有选择。提前致谢!
答案1
问题是我没有手动指定应用程序要部署的平台的依赖项。
该应用程序是在 Visual Studio Code 中为 Arm、x86 和 x64 构建的。Visual Studio Code 生成的文件夹包含 .msixbundle 和一些其他文件和文件夹。其中一个文件夹名为 Dependencies,其中有名为 Arm、x86 和 x64 的文件夹。我部署到 x64,该文件夹包含 3 个文件:
- Microsoft.NET.CoreFramework.Debug.2.2.appx
- Microsoft.NET.CoreRuntime.2.2.appx
- 微软.VCLibs.x64.调试.14.00.appx
解决方案是在调用中将这些指定为依赖项Add-AppxProvisionedPackage
。
因此,帮我解决这个问题的电话是:
Add-AppxProvisionedPackage -Online -PackagePath C:\Path\To\Package\App.msixbundle –DependencyPackagePath C:\Path\To\Package\Dependencies\x64\Microsoft.NET.CoreFramework.Debug.2.2.appx,C:\Path\To\Package\Dependencies\x64\Microsoft.NET.CoreRuntime.2.2.appx,C:\Path\To\Package\Dependencies\x64\Microsoft.VCLibs.x64.Debug.14.00 -SkipLicense
Windows 仍然显示该应用程序为 0 字节且只有 88 kB 的数据,但它正在按预期运行。
很高兴它能工作了,但是有点沮丧的是没有关于缺少依赖项的错误消息。
答案2
导航到 C:\windows\system32\ 并搜索 sysprep 文件夹,转到属性,通过更改高级菜单中的权限将文件夹的所有权更改为本地管理员。2. 获得文件夹所有权后,您可以打开 sysprep\actionfiles 并编辑 Generalize.xml 并从中删除以下条目。3. 在任何所需位置保存为 Generalize.xml,然后将现有的 Generalize.xml 重命名为旧文件并将其替换为新文件。4. 运行 sysprep Generalize 并查看它是否适合您。