【问题标题】:MSBuild NullReferenceException in Microsoft.TeamTest.targetsMicrosoft.TeamTest.targets 中的 MSBuild NullReferenceException
【发布时间】:2012-09-06 16:21:17
【问题描述】:

在 TFS 2010 上,我还配置了一些运行 MSTest 单元测试的 CI 构建。这工作正常,除了一种解决方案,我通常(但不总是)得到以下build(不是测试运行器)错误:

C:\程序文件 (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TeamTest\Microsoft.TeamTest.targets (14): 对象引用未设置为对象的实例。

构建定义的Logging Verbosity 设置为DiagnosticSome social.msdn.com posts 建议这样做以消除这个非常偶然的错误。顺便说一句,如果它是偶然的,如果它由于上述原因被破坏,我们可以通过安排另一个构建来解决它。然而,它不是,而且构建起来也需要相当长的时间。

即使是构建错误,也可以通过将Disable Tests 设置为True 来修复它。但是,我确实想运行测试。有谁知道如何解决这个问题?其他(工作)解决方案通常是All Projects 项目的子集。 All Project 是一个相当大的解决方案。

我这里有缩短的 MSBuild 输出,以防万一:

Run MSBuild for Project
Initial Property Values
AdditionalVCOverrides =
CommandLineArguments = /p:SkipInvalidConfigurations=true
Configuration = Release
GenerateVSPropsFile = True
LogFile =
LogFileDropLocation =
MaxProcesses = 1
OutDir = All Projects-CI\Binaries\Release
Platform = Any CPU
Project = All Projects-CI\Sources\Shared\All Projects.sln
ResponseFile =
RunCodeAnalysis = AsConfigured
Targets =
TargetsNotLogged = String[] Array
ToolPath =
ToolPlatform = Auto
Verbosity = Diagnostic
Built $/.../DataAccessLayer.Testing.csproj for default targets.

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TeamTest\Microsoft.TeamTest.targets (14): Object reference not set to an instance of an object.

【问题讨论】:

标签: c# msbuild windows-server-2008-r2


【解决方案1】:

MSBuild\Microsoft\VisualStudio\v10.0\TeamTest\Microsoft.TeamTest.targets 中的 BuildShadowTask 自定义任务导致错误。禁用测试时看不到错误的原因是禁用测试时此构建任务不会运行。

建议添加 MsBuild Message 任务以输出各种值以确定是哪一个导致“对象引用未设置为对象的实例”错误。

在这一行之前:

  <BuildShadowTask
        ExecuteAsTool="False"
        CurrentResolvedReferences="@(ReferencePath)"
        CurrentCopyLocalFiles="@(ReferenceCopyLocalPaths)"
        Shadows="@(Shadow)"
        ProjectPath="$(ProjectDir)"
        IntermediatePath="$(IntermediateOutputPath)"
        SignAssembly="$(SignAssembly)"
        KeyFile="$(AssemblyOriginatorKeyFile)"
        DelaySign="$(DelaySign)">

添加Message任务,输出传递给BuildShadowTask的每个参数的值,判断哪一个出错:

  <Message Text="AssemblyOriginatorKeyFile $(AssemblyOriginatorKeyFile)" Importance="High" />

【讨论】:

    猜你喜欢
    • 2010-11-05
    • 2011-07-24
    • 2013-03-12
    • 2016-09-20
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多