从MSbuild脚本启动sourcemonitor时出现问题?

从MSbuild脚本启动sourcemonitor时出现问题?,msbuild,source-monitor,Msbuild,Source Monitor,我的测试文件夹设置如下: 我已经从命令行独立运行了SourceMonitor,它成功地运行到完成,并输出了我的CI过程所需的一些.xml文件 下面是我正在尝试运行的.proj文件: <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Analyze" xmlns="http://schemas.microsoft.com/developer/msbuild/200

我的测试文件夹设置如下:

我已经从命令行独立运行了SourceMonitor,它成功地运行到完成,并输出了我的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>

.
我得到以下错误:


研究链接:

退出代码1并没有真正的帮助。尝试使用
start cmd/k
(它将通过一个新的
cmd
窗口退出MSBuild的沙盒重定向)预先结束您的命令,并查看是否打印其他内容。
ERRORLEVEL 1
的一种可能性是MSBuild关闭输入流,因此如果
sc.exe
是交互式的,需要从用户处读取任何内容,它将以退出代码1终止


另外,在您手动“成功运行以完成”之后,您是否使用
echo%ERRORLEVEL%
检查退出代码?它可能会悄悄退出并输出一些文件,但技术上仍然会失败,退出代码为非0。

让我试试,然后再联系您。谢谢回答。我手动运行了源代码监视器命令,工作正常。退出命令是0。它现在神奇地开始工作了,我尝试了“start cmd/k”,但是cmd窗口被卡住了。仔细观察命令,我想可能是输入错误。@Ibramumtaz是的,这就是目标,
start
将退出重定向,这样输入流就不会被关闭,
/k
将保持其打开状态,以便您可以阅读任何其他消息(如果有)。最终归结为不正确的相对路径和打字错误。