当我尝试编译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.dll
和itircl.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