Ich verwende NDepend 6 mit TeamCity 10.0.2 und erhalte einen Fehler während des NDepend-Build-Schritts. Mit Blick auf die Erstellungsprotokoll, das erscheint:TeamCity NDepend 400 Fehler beim Wiederherstellen des Trendspeichers
[Schritt 6/9] Wiederherstellen Trendspeicher (1s)
[17:59:26][Restoring trend store] Requesting last finished build http://localhost/httpAuth/app/rest/buildTypes/ProjectName/builds?locator=count:1,personal:false,canceled:false,tags:ndepend_metrics
[17:59:27][Restoring trend store] Restoring trend store to C:\TeamCity\buildAgent\work\d91e7b421f32292a\LastTrendMetrics.zip
[17:59:27][Restoring trend store] Downloading artifact http://localhost/httpAuth/app/rest/builds/id:5783/artifacts/content/NDependOut/TrendMetrics.zip to C:\TeamCity\buildAgent\work\d91e7b421f32292a\LastTrendMetrics.zip
[17:59:29]
[Step 6/9]
Exception.Type {System.Net.WebException}
Exception.Message {The remote server returned an error: (400) Bad Request.}
Exception.StackTrace {
System.Net.WebClient.DownloadFile(Uri address, String fileName) L_00ca
NDepend.TeamCity.Artifacts.RestoreTrendStore.DownloadTrendStoreZip(Int32 lastFinishedBuildId, String lastTrendMetricsZip) L_003c
NDepend.TeamCity.Artifacts.RestoreTrendStore.DoRestore() L_006b
NDepend.TeamCity.Artifacts.RestoreTrendStore.Restore() L_0011
NDepend.TeamCity.NDependRunner.RestoreArtifacts() L_001c
NDepend.TeamCity.NDependRunner.Run() L_0006
NDepend.TeamCity.Program.MainSub(String[] args) L_002c
}
Exception.InnerException = null
Mit Blick auf die tatsächliche Antwort von der URL:
URL: http://localhost/httpAuth/app/rest/builds/id:5783/artifacts/content/NDependOut/TrendMetrics.zip
RESPONSE:
Responding with error, status code: 400 (Bad Request).
Details: jetbrains.buildServer.server.rest.errors.BadRequestException: Cannot provide children list for file ''.
Invalid request. Please check the request URL and data are correct.
Das alles hat in TeamCity 9 gut funktioniert; Die Probleme traten nach dem Umzug auf einen neuen Server und dem Upgrade auf TeamCity 10 auf. Ich interessiere mich nicht unbedingt für die interne Trendverfolgung von NDepend. Wenn es also eine Möglichkeit gibt, diesen Teil der Analyse zu deaktivieren, wäre das auch in Ordnung.