小编Ele*_*ena的帖子

如果使用ContinueOnError = true,如何检查MSBuild-Task是否失败

我正在使用ContinueOnError = true运行MSBuild任务:

<MSBuild Projects="@(ComponentToDeploy)"
    Targets="$(DeploymentTargets)"
    Properties="$(CommonProperties);%(AdditionalProperties)"
    ContinueOnError="true" 
    Condition="%(Condition)"/>
Run Code Online (Sandbox Code Playgroud)

所以我的构建总是成功的.

有没有办法找出是否发生任何错误?

我找不到包含此信息的MSBuild任务的任何输出.我知道的唯一方法是解析日志文件中的错误,但对我来说它看起来像是一种解决方法.

(我正在使用MSBuild 4.0)


这是@Ilya最后反馈的答案.
我正在使用反馈/答案,因为评论的长度和格式限制.

日志范围限定为单个目标或更具体的任务......

这确实是我在阅读您的评论时出现的第一个问题,建议使用Log.HasLoggedErrors:" 这是日志的范围吗? ".
不幸的是,我无法找到合适的文档.MSND没有多大帮助......
为什么你知道它的任务范围是什么?
我对你的陈述毫不怀疑!我只是想知道某处是否有适当的文档..(我多年没有使用过MSBuild ;-)

无论如何,你在建设什么项目?

我的测试项目非常简单.
MyTest.project

<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="ElenasTarget" ToolsVersion="4.0">

    <UsingTask AssemblyFile="$(MSBuildProjectDirectory)\MyCompany.Tools.MSBuild.Tasks.dll" TaskName="MSBuildWithHasLoggedErrors" />

    <ItemGroup>
        <MyProjects Include="CopyNotExistingFile.proj" />
    </ItemGroup>

    <Target Name="ElenasTarget">
        <MSBuildWithHasLoggedErrors Projects="@(MyProjects)" ContinueOnError="true" >
            <Output TaskParameter="HasLoggedErrors" PropertyName="BuildFailed" />
         </MSBuildWithHasLoggedErrors>

         <Message Text="BuildFailed=$(BuildFailed)" />
  </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

CopyNotExistingFile.proj只是试图复制不存在的文件:

<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" …
Run Code Online (Sandbox Code Playgroud)

msbuild msbuild-task msbuild-4.0

12
推荐指数
1
解决办法
1万
查看次数

如何查找特定测试用例所属的所有测试套件

我在Microsoft Test Manager 2010中有一个用于测试计划的测试用例.

如何在测试计划中找到此测试用例?"组织"视图中是否至少有一列显示使用测试用例的测试计划的路径?

visual-studio-2010 microsoft-test-manager tfs2013

5
推荐指数
1
解决办法
4027
查看次数