2017-02-08 5 views
1

Wir haben eine CI-Build und eine nächtliche Build, die früher perfekt funktioniert, aber plötzlich begann es zu scheitern. Ich habe das Protokoll analysiert, um zu sehen, was das Problem ist, aber das Protokoll beschwert sich über zufällige Dateien, die bereits vorhanden sind. Die einzige Gemeinsamkeit bei diesen Dateien sind .resx Dateien. Ich bekomme diese Nachricht:TFS Build fällt plötzlich aus - Fehler MSB4018

CoreResGen: 2017-01-29T05:01:39.1421685Z Processing resource file "Resources\SomeRandFile.resx" into "obj\Release\Xxx.Model.Resources.SomeRandomResources.resources".

'##[error]C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets(550,5): Error MSB4018: The "SqlBuildTask" task failed unexpectedly.

Alles verwendet, um zu arbeiten und dann eines Tages hörte es auf. Ich habe ein paar Tage verbracht für diesen Fehler suchen und hier sind, was ich bisher versucht habe:

  1. die Windows \ Temp löschen Ordner
  2. löschen AppData \ Local \ Temp Ordner
  3. Aktivieren Sie das Kontrollkästchen Clean auf der Registerkarte Repository.

und nichts funktioniert.

Ich weiß es wirklich zu schätzen, wenn jemand auf dieses Problem gestoßen ist und wie Sie es gelöst haben.

Nur eine Anmerkung: Der exakt gleiche Code funktioniert lokal auf meinem Rechner. Aber schlägt auf dem Build-Server fehl.

+0

WAG lösche den Build re-create den Build bete es Build – Will

+0

@Will was ist WAG? Entschuldigung – CodingYoshi

+0

Wild-ass rate. – Will

Antwort

1

Ich baute ein älteres Changeset, das vor ein paar Wochen erfolgreich gebaut wurde, um zu sehen, ob das auch scheitern wird. Ich wollte sicherstellen, dass es nicht mit einem Check-in verbunden ist. Wie ich erwartet habe, ist der Build mit diesem Changeset mit demselben Fehler fehlgeschlagen. Ok gut, zumindest wissen wir, dass es nicht mit einem Check-in verbunden ist.

Dann habe ich einen anderen Build erstellt und änderte es, um ein anderes zufälliges Projekt aus meiner Lösung zu erstellen. Meine Lösung hat ungefähr 50 Projekte, also habe ich zufällig Projekte ausgewählt und gebaut. Nach ein paar Builds war das Projekt, das mit genau dem gleichen Fehler fehlschlug, mein Datenbankprojekt. Ein weiterer kleiner Schritt zur Lösung. Ok, gut, wir kommen irgendwohin.

Ich habe dann die neueste Version von SQL Server Data Tools installiert und versucht, das Projekt neu aufzubauen und es ist mit dem gleichen Fehler fehlgeschlagen. Dann habe ich Update 3 von VS 2015 installiert. Abgerufen, erneut mit demselben Fehler fehlgeschlagen.

Ich fand die ...\UserAccountUsedByTfsBuild\AppData\Local\Temp und beschloss, alles wieder zu löschen. Habe den Build erneut versucht, mit einem anderen Fehler fehlgeschlagen:

Error CS2001: Source file 'C:\Users\UserAccountUsedByTfsBuild\AppData\Local\Temp.NETFramework,Version=v4.0.SqlClrAttributes.cs' could not be found.

OK großartig! Unterschiedlicher Fehler. Ich ging in einen anderen temporären Ordner des Benutzers und kopiert die folgenden C# Dateien:

  1. .NETFramework, Version = v4.0.SqlClrAttributes
  2. .NETFramework, Version = v4.5.2.AssemblyAttributes
  3. .NETFramework, Version = v4.5.AssemblyAttributes

Ich lief den Build wieder und YESSS IT PASSED !!

Dann lief ich den Build für die gesamte Lösung und es ging auch.


Schlussfolgerung/Zusammenfassung

  1. Installieren Sie die neueste SQL Server Data Tools
  2. die Updates für VS 2015 Installieren
  3. Löschen Sie die temporäre Datei für die von TFS verwendet Konto erstellen (löschen NICHT die Dateien beginnend mit .NETFramework...)