2016-10-06 16 views
1

ビルドプロセスの一部としてTeamCity 9のMSBuildビルドランナーを使用して実行しています。MSBuildのネストされたSQLがTeamCityビルドに失敗しない

MSBuildファイルの中には、MSBuild.ExtensionPack.SqlServer名前空間を介してネストされたSQLを実行しているものがあります。 SQLコードの実行中にエラーが発生した場合、MSBuildターゲットはTeamCityビルドにエラーを返さないため、全体のビルドステータスは正常に記録され、エラーは記録されません。

SQLを実行しているTeamCityビルドに失敗するために、SQLからMSBuildに戻るにはどのようにエラーが発生しますか?ここで

が実行したときに、このコードはビルドにエラーを返さない、SQLコード内の意図的な間違いのサンプルコードです:

<Target Name="RunSQL"> 
    <MSBuild.ExtensionPack.SqlServer.SqlCmd 
     TaskAction="Execute" 
     CommandLineQuery="EXEC [Database1].dbo].[UpdateSomething]" /> 
</Target> 

答えて

1

私はSqlCmdクラスでSeverityLevelプロパティに解決策を発見しました

このSeverityLevelプロパティを1に設定すると、すべてのエラーがMSBuildタスクに送信されます。このタスクは最終的には実行中のTeamCityビルドに失敗します。

私の最終的なコードから得たこの

<Target Name="RunSQL"> 
    <MSBuild.ExtensionPack.SqlServer.SqlCmd 
    TaskAction="Execute" 
    SeverityLevel="1" 
    CommandLineQuery="EXEC [Database1].dbo].[UpdateSomething]" /> 
</Target> 

ソリューションのようになります。 http://www.msbuildextensionpack.com/help/4.0.9.0/html/3b72c130-7fc9-8b8a-132c-62999e5b1183.htm

関連する問題