簡體   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