excel - 无法在 Windows Docker 容器中安装 Excel - 错误 17002
问题描述
我试图让 Microsoft Excel 在 Docker Windows 容器中工作。此容器的目的是使用基本上运行批处理的 VBA 代码运行 Excel 工作簿。但是,我一直无法在容器中成功安装 Excel。
为了以受控方式安装 Excel,我采用了以下部分手动过程:
- 使用以下 Dockerfile 构建 Docker 映像:
FROM mcr.microsoft.com/windows/servercore:ltsc2019 AS build
WORKDIR C:\\odtsetup
COPY odtsetup.exe C:\\odtsetup
RUN odtsetup.exe /quiet /norestart /extract:C:\\odtsetup
- 以交互方式运行图像:
docker run -it IMAGE cmd
- 从容器内的命令提示符处手动执行以下 Office 部署工具步骤:
setup.exe /download C:\\odtsetup\\configuration.xml
setup.exe /configure C:\\odtsetup\\configuration.xml
这是 configuration.xml 文件:
<Configuration>
<Add OfficeClientEdition="64" Channel="PerpetualVL2019">
<Product ID="ProPlus2019Volume">
<Language ID="en-us" />
</Product>
</Add>
<Display Level="None" AcceptEULA="TRUE" />
<Property Name="AUTOACTIVATE" Value="1"/>
<Logging Level="Standard" Path="c:\logs" />
</Configuration>
这些步骤似乎成功运行到完成。但是,Excel 不会启动,ODT 配置步骤的 ODT 安装日志显示以下错误:
|"C2R 客户端返回失败错误代码","错误代码":"17002"
此外,检查注册表会发现许多条目丢失。例如,Powershell 中的以下命令不会返回任何结果:
Get-ChildItem HKLM:\Software\Classes | Select-Object -ExpandProperty PSChildName | where-Object {$_ -eq 'Excel.Application'}
在搜索 Web 时,我在尝试在容器中运行 MS Office 应用程序时看到了其他 17002 问题。我还没有看到任何解决方案。
如果我在 Windows 2019 Datacenter v1809 上执行完全相同的 ODT 安装步骤,Excel 安装不会出现问题。
是什么导致了 17002 错误,如何避免此错误并在 Docker Windows 容器中成功安装 Excel?
解决方案
推荐阅读
- c# - 我应该为我的 .Net Core Web 应用程序使用 IMemoryCache 还是自定义 GlobalCache?
- amazon-web-services - S3 需要哪些权限才能允许部署到 AWS Amplify
- java - 运行 60 秒后发生 504 网关超时错误
- docker - 在 Linux 容器中为 ASP.NET Core 安装字体
- microsoft-teams - 团队日历请求导致 Exchange Server 2016 记录未处理的异常 (maxQueryStringLength)
- ssl - 通过 HTTPS 通过其 IP 使用 Python 请求访问主机时出现问题
- sql - Teradata SQL - 请查看正文并为我提供解决方案的逻辑
- excel - 从 FormUser 粘贴代码后,如何删除输入符号小方块?
- typescript - 工件注册表文件中的“自述文件”字段来自哪里
- flutter - Flutter ListView Builder 滚动整个屏幕