美好的一天Stackoverflow。
正如标题所说,我对Doxygen有一个问题。
PowerShell脚本修改我的Doxyfile的PROJECT_NUMBER变量。
然后它运行Doxygen,但它生成HTML和LaTeX中的文档,就像它正在读取默认生成的Doxy文件一样。
如果我在之前手动修改运行此脚本的Doxyfile ,通过Notepad ++,Doxygen可以正常工作,但是一旦运行该脚本,就会出现问题。
我还要提到我的Doxyfile有:
在实践中,Doxygen的行为如下:
.\doxygen.exe -g
\doxygen.exe .\Doxyfile
bizzarre行为现在开始了!
让我们调用我的实际Doxyfile CustomConfig
,默认生成DefaultConfig
。
如果我生成DefaultConfig
到.\doxygen.exe -g
,然后我通过Notepad ++用CustomConfig
文本覆盖其内容,doxygen会接受Doxyfile,并生成正确的输出!
所以问题不是Doxyfile内容,而是修改文件的PowerShell。
我通过对整个内容进行简单的复制和粘贴验证了这一点:
# Replace the old PROJECT_NUMBER with the new one
$DOXY_PATH = $env:FS_OS + "\doc"
$CONFIG_PATH = $DOXY_PATH + "\bin\Doxyfile"
$BIN_PATH = $DOXY_PATH + "\bin\doxygen.exe"
$GIT_PATH = $env:FS_OS
$GIT_BRANCH = "Development"
# Get git commit number on the specified branch
$GIT_HASH = git log $GIT_BRANCH -1 --pretty=format:%H
$PRJ_CONTENT = Get-Content $CONFIG_PATH
$PRJ_NUM = "PROJECT_NUMBER = " + $GIT_HASH
$PRJ_CONTENT = $PRJ_CONTENT -replace "PROJECT_NUMBER\s*=\s*[A-z0-9]{40}",$PRJ_NUM
$PRJ_CONTENT | Out-File -FilePath $CONFIG_PATH
Start-Process -FilePath $BIN_PATH -ArgumentList "$CONFIG_PATH" -WorkingDirectory ($DOXY_PATH + "\bin")
$var = Get-Content "./doc/bin/Doxyfile.bak"
$var | Out-File -FilePath "./doc/bin/Doxyfile"
答案 0 :(得分:1)
感谢@BenH的评论,我找到了解决方案。
看起来PowerShell会自动使用BOM写入文件。
我已经找到了一个解决方案,其中包含此问题的接受答案: