我的测试文件夹设置如下:
我已经从命令行自行运行了源监视器,它成功运行并输出了我的CI过程所需的一些.xml文件。
以下是我正在尝试运行的.proj文件:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Analyze" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildCommunityTasksPath>.</MSBuildCommunityTasksPath>
</PropertyGroup>
<Import Project="MSBuild.Community.Tasks.Targets"/>
<Target Name="Analyze">
<Exec Command="sm.exe /C sm-commands.xml"/>
<XmlRead XPath="//*/metric[@id='M0']" XmlFileName="sm-summary.xml">
<Output TaskParameter="Value" PropertyName="NumberOfLines" />
</XmlRead>
<TeamCityReportStatsValue Key="NumberOfLines" Value="$(NumberOfLines)" />
<XmlRead XPath="//*/metric[@id='M5']" XmlFileName="sm-summary.xml">
<Output TaskParameter="Value" PropertyName="MethodsPerClass" />
</XmlRead>
<TeamCityReportStatsValue Key="MethodsPerClass" Value="$(MethodsPerClass)" />
<XmlRead XPath="//*/metric[@id='M7']" XmlFileName="sm-summary.xml">
<Output TaskParameter="Value" PropertyName="StatementsPerMethod" />
</XmlRead>
<TeamCityReportStatsValue Key="StatementsPerMethod" Value="$(StatementsPerMethod)" />
<XmlRead XPath="//*/metric[@id='M10']" XmlFileName="sm-summary.xml">
<Output TaskParameter="Value" PropertyName="MaxComplexity" />
</XmlRead>
<TeamCityReportStatsValue Key="MaxComplexity" Value="$(MaxComplexity)" />
<XmlRead XPath="//*/metric[@id='M14']" XmlFileName="sm-summary.xml">
<Output TaskParameter="Value" PropertyName="AvgComplexity" />
</XmlRead>
<TeamCityReportStatsValue Key="AvgComplexity" Value="$(AvgComplexity)" />
</Target>
</Project>
我收到以下错误:
答案 0 :(得分:1)
退出代码1并没有多大帮助。尝试使用start cmd /k
添加命令(它将使用新的cmd
窗口转移MSBuild&#39; s sandbox重定向)并查看是否打印了其他内容。 ERRORLEVEL 1
的一种可能性是MSBuild关闭输入流,因此如果sc.exe
是交互式的并且需要从用户读取任何内容,它将以退出代码1终止。
此外,在您手动&#34;成功完成&#34;后,您是否使用echo %ERRORLEVEL%
检查了退出代码?它可能会安静地退出并输出一些文件,但在技术上仍然会失败,并带有非0退出代码。