2016-10-06 1 views
1

Ich bin mit dem Buildbuilder MSBuild in TeamCity 9 als Teil meines Build-Prozesses ausgeführt.Verschachtelte SQL in MSBuild nicht fehlgeschlagen TeamCity build

In einigen MSBuild-Dateien führe ich geschachtelte SQL über den Namespace MSBuild.ExtensionPack.SqlServer. Wenn beim Ausführen des SQL-Codes ein Fehler auftritt, gibt das MSBuild-Ziel keinen Fehler an den TeamCity-Build zurück, sodass der allgemeine Build-Status erfolgreich ist und keine Fehler protokolliert wurden.

Wie genau bekomme ich einen Fehler, um von SQL zu MSBuild zurückzukehren, um den TeamCity-Build, der es ausführt, fehlzuschlagen? Hier

ist Beispielcode mit einem absichtlichen Fehler in dem SQL-Code, dieser Code nicht um einen Fehler zu dem Build zurückzukehren, wenn laufen:

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

Antwort

1

Ich habe die Lösung in der SeverityLevel Eigenschaft in der SqlCmd Klasse gefunden

Wenn Sie diese SeverityLevel -Eigenschaft auf 1 setzen, werden alle Fehler an die MSBuild-Aufgabe gesendet, die letztlich die TeamCity-Erstellung, auf der sie ausgeführt wird, nicht besteht.

Meine letzte Code sieht wie folgt aus

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

Lösung aus erhalten: http://www.msbuildextensionpack.com/help/4.0.9.0/html/3b72c130-7fc9-8b8a-132c-62999e5b1183.htm

Verwandte Themen