rob*_*sta 8 crystal-reports docker
我正在尝试创建一个 Docker 映像来托管我的依赖于 Crystal Reports 的 asp.net MVC 应用程序。
我的 dockerfile 看起来像这样
FROM microsoft/iis
COPY ./bin/Release/Publish/ c:\\inetpub\\wwwroot
RUN ["powershell.exe", "Install-WindowsFeature NET-Framework-45-ASPNET"]
RUN ["powershell.exe", "Install-WindowsFeature Web-Asp-Net45"]
#install Crystal reports runtime
COPY Resources/Files/CRRuntime_64bit_13_0_21.msi .
RUN powershell.exe -Command Start-Process CRRuntime_64bit_13_0_21.msi -ArgumentList '/quiet' -Wait
Run Code Online (Sandbox Code Playgroud)
CRRuntime_64bit_13_0_21.msi 安装失败。我登录到我的容器并从 powershell 运行 msi install 并生成了一个日志。它很长,但这里有两件事很突出:
错误 1904。模块 C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win64_x64\pageobjectmodel.dll 未能注册。HRESULT -2147024770。请联系您的支持人员。操作结束 17:20:50:InstallFinalize。返回值 3。
操作结束 17:23:56:安装。返回值 3. MSI (s) (3C:54) [17:23:56:467]:产品:适用于 .NET Framework(64 位)的 SAP Crystal Reports 运行时引擎——安装操作失败。MSI (s) (3C:54) [17:23:56:467]:Windows Installer 安装了该产品。产品名称:适用于 .NET Framework(64 位)的 SAP Crystal Reports 运行时引擎。产品版本:13.0.21.2533。产品语言:1033。制造商:SAP。安装成功或错误状态:1603。
第一个错误似乎不会停止安装。
欢迎任何解决此问题的建议以及创建图像的替代方法。
另外,只是为了确认。该网站加载并运行良好。我只是不能使用任何需要 Crystal Reports 依赖项的功能。
Pet*_*art 10
使用完整的 Windows 2019 容器mcr.microsoft.com\windows:1809作为基础,安装程序可以工作,这暗示它只是缺少操作系统组件。
我没有记录“错误 1904”,但也许我在不同的主机操作系统上。
安装程序日志显示自定义操作SetASPDotNetDllPath失败。
如果你:
dumpbin)这显示了对 的依赖oledlg.dll。这是它在 Server Core 中不可用的唯一依赖项。
它不是很好,但是您可以从完整的 Windows 容器中复制此版本来修复它:
FROM mcr.microsoft.com/windows:1809 as dll_source
FROM microsoft/iis
#hack in oledlg dll!!
COPY --from=dll_source /windows/system32/oledlg.dll /windows/system32/oledlg.dll
COPY --from=dll_source /windows/syswow64/oledlg.dll /windows/syswow64/oledlg.dll
RUN ["powershell.exe", "Install-WindowsFeature NET-Framework-45-ASPNET"]
RUN ["powershell.exe", "Install-WindowsFeature Web-Asp-Net45"]
WORKDIR c:/temp
COPY CRRuntime_64bit_13_0_21.msi .
RUN powershell.exe -Command Start-Process c:\temp\CRRuntime_64bit_13_0_21.msi -ArgumentList '/l*v c:\temp\install.log' -Wait
Run Code Online (Sandbox Code Playgroud)
我将添加一个额外的答案,而Peters 的答案对于安装 Crystal Reports 非常有效,当从 Crystal Report 导出到 PDF 时,我还有一个缺少字体的问题。
这就是我的结局。关键是将图像标签名称更改为旧版本。
#windowsservercore-1803 required as it has the fonts we need in the report in order to export to PDF
FROM microsoft/iis:windowsservercore-1803
#install features we need
RUN ["powershell.exe", "Install-WindowsFeature NET-Framework-45-ASPNET"]
RUN ["powershell.exe", "Install-WindowsFeature Web-Asp-Net45"]
#hack in oledlg dll so that Crystal Runtime will install
COPY Resources/Files/64/oledlg.dll /windows/syswow64/oledlg.dll
COPY Resources/Files/32/oledlg.dll /windows/system32/oledlg.dll
#copy in Crystal MSI and install. Note it's 64bit version
WORKDIR c:/temp
COPY Resources/Files/CRRuntime_64bit_13_0_21.msi .
RUN powershell.exe -Command Start-Process c:\temp\CRRuntime_64bit_13_0_21.msi -ArgumentList '/quiet /l*v c:\temp\install64.log' -Wait
#Add website files
COPY ./bin/Release/Publish/ /inetpub/wwwroot
Run Code Online (Sandbox Code Playgroud)
出于某种原因,微软从 1803 版到 1809 版放弃了很多字体。我只能假设减少操作系统图像的大小。
| 归档时间: |
|
| 查看次数: |
3752 次 |
| 最近记录: |