2012-09-13 16 views
5

TFS 2010では、MSTestユニットテストを実行する一部のCIビルドも構成しました。Microsoft.TeamTest.targetsのMSBuild NullReferenceException

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

ビルド定義のLogging VerbosityDiagnosticに設定されている:これは私通常は(常にではないが)、以下のビルド(ないテストランナー)エラーを取得一つの解決策を除き、正常に動作します。 Some social.msdn.com postsは、この非常に時折のエラーを取り除くためにこれを示唆しています。ちなみに、上記の理由で壊れている場合は別のビルドをスケジュールすることで回避できます。しかし、そうではなく、ビルドするのにかなりの時間がかかります。

ビルドエラーでも、Disable TestsTrueに設定することで修正できます。私はしかし、テストを実行したいです。誰もがこれを修正する方法を知っていますか?他の(働く)解決策は多くの場合、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. 
+0

はあなたがプライベートアクセサを持っていますあなたが言った解決策?すべては、このエラーメッセージがプライベートアクセサにアクセスすることに関係していることを暗示しているようですので、必要がない場合は削除することができます。または、おそらくそれらを再生成してみてくださいhttp://msdn.microsoft.com/en-us/library/ms184796%28v=vs.80%29.aspx –

答えて

0

のMSBuild \マイクロソフト\ VisualStudioを\ V10.0 \ TeamTest \ Microsoft.TeamTest.targetsでBuildShadowTaskのカスタムタスクがエラーの原因となっていること。テストを無効にしたときにエラーが表示されない理由は、テストが無効な場合にこのビルドタスクが実行されないためです。

MsBuildのメッセージタスクを追加して、さまざまな値を出力して、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」エラーの原因を特定することを提案します。この行の前に

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

出力へのメッセージタスクを追加し、エラーであるかを判断するためにBuildShadowTaskに渡される各パラメータの値:

<Message Text="AssemblyOriginatorKeyFile $(AssemblyOriginatorKeyFile)" Importance="High" /> 
関連する問題