从Exec任务MSBuild的输出导航到错误

时间:2018-02-13 14:59:04

标签: typescript msbuild tslint targets

我正在尝试编写一个MSBuild Targets文件,以将TSLint集成到我们项目的构建系统中。我可以获得lint任务来正确地破坏构建,但似乎无法找到一种方法来获取错误和警告窗口中的错误以导航到作为错误源的正确文件。 “错误和警告”窗口中的错误的文件字段显示为Exec,而不是作为错误源的实际文件。我的目标文件看起来像这样。

<NodeExePath>$(WorkspaceDirectory)\packages\node.8.9.2\files\node.exe</NodeExePath>
    <TsLintPath>$(WorkspaceDirectory)\packages\tslint.5.9.1\tools\node_modules\tslint\bin\tslint</TsLintPath>
</PropertyGroup>
<Target Name="TSLint">
    <Exec 
        Command="&quot;$(NodeExePath)&quot; &quot;$(TsLintPath)&quot; -p $(MSBuildProjectDirectory)" 
        WorkingDirectory="$(MSBuildProjectDirectory)"
        ConsoleToMsBuild="true"
        EchoOff="true"
        IgnoreExitCode="true">
        <Output TaskParameter="ConsoleOutput" ItemName="TSLintOutput" />
        <Output TaskParameter="ExitCode" PropertyName="TSLintErrorCode" />
     </Exec>

<!-- Return an error if TSLint returned an exit code and we should break on errors -->
<Error Condition="'$(TSLintErrorCode)' != '0'" />
</Target>`

我尝试使用TSLint.MSBuild NuGet包中的Targets文件,但如果我尝试使用tsconfig json将文件指定为lint,则会遇到问题。那个Targets文件似乎能够产生错误,我可以导航到错误,但无法弄清楚如何。

1 个答案:

答案 0 :(得分:0)

尝试在命令中添加选项--format "msbuild"。 TSLint将为您格式化结果。