5

TFS 2010 では、MSTest 単体テストも実行するいくつかの CI ビルドを構成しました。これは正常に動作しますが、1 つのソリューションを除いて、通常(常にではありません) 次のビルド(テスト ランナーではない) エラーが発生します。

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.
4

1 に答える 1

0

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" />
于 2013-08-07T16:29:13.923 に答える