您如何在Docker容器中编译HTML帮助研讨会项目



当我尝试编译HTML帮助研讨会项目时,我会在带有Visual Studio构建工具的mcr.microsoft.com/windows/servercore:1809容器中汇编HTML帮助研讨会项目。

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

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

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

我注意到构建工具没有安装所有文件ls 'C:Program Files (x86)HTML Help Workshop',因此我也尝试用桌面上的HTML Help Workshop替换该文件,但这也不起作用。

我想知道是否有一种编译HTML帮助Docker中的研讨会项目的方法。

我简直不敢相信!我让它与mcr.microsoft.com/windows:1903一起使用!因此总而言之,HTML帮助研讨会在Windows ServerCore中不起作用,而是在Windows容器中工作。

如果要使用HTML帮助研讨会,这是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 Workshophhc.exe" pathtoProject.hhp

注意:这仅适用于英语帮助文件。与ServerCore不同,Microsoft不发布具有Windows本地化版本的容器,也没有找到一种在Docker容器中更改系统语言环境的方法。使用上述方法以其他语言的帮助项目将导致编码不正确。

要使IT与ServerCore一起使用:1809或LTSC2019您必须将DLLS itss.dllitircl.dll添加到容器中SYSWOW64文件夹并向Regsrv32进行注册。

可以在windowssyswow64文件夹中的Windows-10安装上找到这些文件。

#add missing dlls to run html help workshop on ltsc2019 container
COPY .itss.dll C:WindowsSysWOW64itss.dll
COPY .itircl.dll C:WindowsSysWOW64itircl.dll
RUN C:WindowsSysWOW64regsvr32.exe C:WindowsSysWOW64itss.dll
RUN C:WindowsSysWOW64regsvr32.exe C:WindowsSysWOW64itircl.dll

最新更新