Mat*_*eid 5 c# msbuild windows-server-2008-r2 tfs2010
在TFS 2010上,我配置了一些运行MSTest单元测试的CI构建.这工作正常,除了一个解决方案,我通常(但不总是)获得以下构建(而不是测试运行器)错误:
C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v10.0\TeamTest\Microsoft.TeamTest.targets(14):未将对象引用设置为对象的实例.
在Logging Verbosity构建定义的设置为Diagnostic.一些social.msdn.com帖子暗示这可以摆脱这种偶然的错误.顺便说一句,如果它是偶然的,我们可以通过调度另一个构建来解决它,如果由于上述原因它被破坏了.然而,它并不需要花费很多时间来构建.
即使它是构建错误,也可以通过设置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.
Run Code Online (Sandbox Code Playgroud)
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)">
Run Code Online (Sandbox Code Playgroud)
添加一个 Message 任务来输出传递给 BuildShadowTask 的每个参数的值,以确定哪个参数出错:
<Message Text="AssemblyOriginatorKeyFile $(AssemblyOriginatorKeyFile)" Importance="High" />
Run Code Online (Sandbox Code Playgroud)