首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSBuild NullReferenceException in Microsoft.TeamTest.targets

MSBuild NullReferenceException in Microsoft.TeamTest.targets
EN

Stack Overflow用户
提问于 2012-09-13 14:30:52
回答 1查看 1.6K关注 0票数 5

在TFS 2010上,我也配置了一些运行MSTest单元测试的CI构建。这很好,除了一种解决方案外,我通常(但不总是)得到以下构建(不是测试运行程序)错误:

C:\Program (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输出,以防有帮助:

代码语言:javascript
复制
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.
EN

回答 1

Stack Overflow用户

发布于 2013-08-07 16:29:13

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

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

在这一行之前:

代码语言:javascript
复制
  <BuildShadowTask
        ExecuteAsTool="False"
        CurrentResolvedReferences="@(ReferencePath)"
        CurrentCopyLocalFiles="@(ReferenceCopyLocalPaths)"
        Shadows="@(Shadow)"
        ProjectPath="$(ProjectDir)"
        IntermediatePath="$(IntermediateOutputPath)"
        SignAssembly="$(SignAssembly)"
        KeyFile="$(AssemblyOriginatorKeyFile)"
        DelaySign="$(DelaySign)">

添加一个消息任务以输出传递给BuildShadowTask的每个参数的值,以确定哪个参数是错误的:

代码语言:javascript
复制
  <Message Text="AssemblyOriginatorKeyFile $(AssemblyOriginatorKeyFile)" Importance="High" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12408641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档