繁体   English   中英

如何在 Docker 容器内编译 HTML Help Workshop 项目?

[英]How do you compile a HTML Help Workshop project inside a Docker container?

当我尝试在安装了 Visual Studio Build Tools 的mcr.microsoft.com/windows/servercore:1809容器中编译 HTML Help Workshop 项目时出现此错误。

PS C:\> & 'C:\Program Files (x86)\HTML Help Workshop\hhc.exe' test.hhp
HHC5010: Error: Cannot open "c:\test.chm". Compilation stopped.

即使这个最小的测试项目也无法编译,并输出相同的错误。

[OPTIONS]
Compiled file=C:\test.chm

[FILES]

我注意到 Build Tools 没有安装所有文件ls 'C:\\Program Files (x86)\\HTML Help Workshop'所以我也尝试用我桌面上的 HTML Help Workshop 版本替换它,但这也不起作用。

我想知道是否有一种方法可以在Docker中编译HTML Help Workshop项目。

我简直不敢相信!!!! 我让它与mcr.microsoft.com/windows:1903一起工作! 因此,总而言之,HTML Help Workshop 在 Windows Servercore 中不起作用,但在 Windows 容器中起作用。

如果您想使用 HTML Help Workshop,这里有一个 dockerfile 示例:

FROM mcr.microsoft.com/windows:1903

ADD https://aka.ms/vs/16/release/vs_buildtools.exe vs_buildtools.exe
RUN .\vs_buildtools.exe --quiet --norestart --nocache --wait \
    --add Microsoft.VisualStudio.Component.VC.ATLMFC
RUN del vs_buildtools.exe

在容器内使用此命令编译帮助项目:

"C:\Program Files (x86)\HTML Help Workshop\hhc.exe" path\toProject.hhp

注意:这仅适用于英语帮助文件。 与 Servercore 不同,Microsoft 不会发布带有本地化版本 Windows 的容器,而且我还没有找到在 Docker 容器中更改系统区域设置的方法。 对其他语言的帮助项目使用上述方法会导致编码不正确。

要使其与 servercore:1809 或 ltsc2019 一起使用,您必须将 dll itss.dllitircl.dll添加到容器 syswow64 文件夹中,并使用 regsrv32 进行注册。

这些文件可以在 windows-10 安装的windows\\syswow64文件夹中找到。

#add missing dlls to run html help workshop on ltsc2019 container
COPY .\itss.dll C:\Windows\SysWOW64\itss.dll
COPY .\itircl.dll C:\Windows\SysWOW64\itircl.dll

RUN C:\Windows\SysWOW64\regsvr32.exe C:\Windows\SysWOW64\itss.dll
RUN C:\Windows\SysWOW64\regsvr32.exe C:\Windows\SysWOW64\itircl.dll

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM