如果我在 Visual Studio 2022 中(在 c 專案上)運行代碼分析,我會為每個代碼檔案獲得一個 XML 和一個
不,我嘗試使用 MSBuild 2022 運行代碼分析:
MSBuild.exe solution.sln -p:Configuration=Release /p:RunCodeAnalysis=true
但是通過這個呼叫,我只得到代碼分析 XML 檔案,沒有 SARIF 檔案。
知道如何強制 MSBuild 創建 SARIF 檔案嗎?
uj5u.com熱心網友回復:
嘗試使用以下命令列:
cl.exe <file/project path> /analyze:autolog:ext .nativecodeanalysis.sarif
或者
cl.exe <file/project path> /analyze:autolog:ext .sarif
雖然 MSBuild.exe 呼叫 cl.exe 進行編譯,但創建 .sarif 檔案似乎只能用于直接使用 cl.exe 及其命令。
這是相關檔案:分析日志選項
/analyze:autolog:ext 擴展
覆寫分析日志檔案的默認擴展名,并改用擴展名。如果您使用 .sarif 擴展名,日志檔案將使用 SARIF 格式而不是默認的 XML 格式。
uj5u.com熱心網友回復:
https://docs.microsoft.com/en-us/answers/questions/512275/what-to-do-with-static-code-analysis-result-xml-fi.html描述了一個解決方案:
將Directory.build.props檔案添加到您的 Visual Studio 解決方案:
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemDefinitionGroup>
<ClCompile>
<AdditionalOptions>$(ClOptions) %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
</ItemDefinitionGroup>
</Project>
現在我可以在我的 CI-Server (TeamCity) 上擴展我的 MSBuild 命令列:
/p:RunCodeAnalysis=true /p:ClOptions="/analyze:log MyApp.nativecodeanalysis.combined.sarif"(我不得不用 替換空格 )。
并生成一個 SARIF 檔案,或者如果您希望每個代碼檔案都有一個 SARIF 檔案:
/p:RunCodeAnalysis=true /p:CaOptions="/analyze:log:format:sarif"
但是:如果我在我的 Visual Studio 專案中激活 Clang-Tidy,我會收到錯誤訊息CLANGTIDY : error : no such file or directory: '/analyze:log' [clang-diagnostic-error],并且CLANGTIDY : error : unable to handle compilation, expected exactly one compiler job in ...- 有人對此有任何想法(除了禁用 Clang-Tidy)嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/508661.html
上一篇:Playwright在針對MSEdge進行測驗時拋出例外“瀏覽器已關閉”
下一篇:安全生產 - 系統穩定性建設
