Visual Studio构建事件中的批处理文件中的输出错误,警告和消息

dav*_*v_i 7 batch-file visual-studio build-events

我正在编写一个批处理文件,要从Visual Studio中的预构建事件执行.

如何将输出错误,警告和消息输出到Visual Studio错误列表?

搜索这个很难,因为大多数事情都是如何修复错误而不是抛出它们!

jeb*_*jeb 7

输出需要一种特殊格式:

<Filename> (<LineNumber>): Warning: <ErrorMessage>

而不是警告你也可以使用Error
空间也很重要!

你可以像这样创建它

echo %~f0 (!lineNo!^): Warning: Invalid target for production
Run Code Online (Sandbox Code Playgroud)

要给出错误位置的提示,您应该添加一个或多或少准确的行号.

if /i "!TargetPath:~-3!"=="DLL" (
    set "targetValid=1"
) ELSE (
    call :GetLineNumber lineNo +1 {3D967145-10B6-44A0-96EF-91B6C6E2DD0E}
    echo %~f0 (!lineNo!^): Warning: Invalid target '!TargetPath:~-3!' for production
)
....

:GetLineNumber returnVar add uniqueGUID
:::
:::
setlocal EnableDelayedExpansion
set "GetLineNumber.lineNo=0"
set /a "GetLineNumber.Add=%~2"
set "GetLineNumber.unique=%~3"

for /F "delims=:" %%L in ('findstr /n "!GetLineNumber.unique!" "%~f0"') do (
    set /a "GetLineNumber.lineNo=%%L"
)

(
endlocal
set /a "%~1=%GetLineNumber.lineNo%" + %GetLineNumber.Add%
)
exit /b
Run Code Online (Sandbox Code Playgroud)

  • 任何想法如何输出严重程度为“消息”的文本?“消息”,“信息”或“信息”均无效。 (2认同)
  • @dlf这种方式不可能.似乎有必要编写add ins或其他过于复杂的东西 (2认同)