2013-08-30 4 views
6

Nach dem Upgrade unserer Lösung auf Visual Studio 2012 möchten wir die neue Funktion Code Analysis nutzen. Es dauert jedoch zu lange, bis es ausgeführt wird, da das Projekt und abhängige Projekte neu erstellt werden, bevor es ausgeführt wird, obwohl sich der Code nicht geändert hat und keine Neuerstellung erforderlich ist.Verhindern, dass die Codeanalyse Projekte und Abhängigkeiten in Visual Studio 2012 neu erstellt

Gibt es eine Möglichkeit, den Code neu zu erstellen, wenn keine Neuerstellung erforderlich ist?

+0

Ziemlich sicher, dass die Wiederherstellung der statischen Code-Analyse ausgeführt wird. –

Antwort

1

Wenn Sie gerade beginnen, Code-Analyse zu verwenden, dann verwechseln Sie möglicherweise die Symptome. Sie sehen: e 1. Codeanalyse eine beträchtliche Menge an Zeit in Anspruch nimmt, und 2. Während der Code-Analyse, das Projekt baut

Sie können diese beiden Symptome und Erreichen der Schlussfolgerung zwingt, dass Code-Analyse sein, die Kombination von Wiederaufbau Ihres Projekts. Dies wäre eine falsche Annahme. Versuchen Sie folgendes:

  1. Stellen Sie sicher, dass Ihre Projekte konfiguriert werden nicht Laufcodeanalyse auf Build
  2. Erstellen Sie Ihre Lösung. Beachten Sie, wie lange es
  3. Bauen nimmt (nicht Wiederaufbau) Ihre Lösung, aber diesmal, beachten Sie, wie lange es dauert

Sie werden feststellen, dass Ihre Lösung tatsächlich „baut“, aber da Die Projekte sind auf dem neuesten Stand, die Compiler und andere Tools laufen nicht.

Also, es ist wahr, dass Code-Analyse zuerst einen Build Ihrer Lösung ausführt, aber es wird ein Build wie # 3 oben sein - nichts hat sich geändert, so dass die Tools nicht ausgeführt werden. Nur das Codeanalyse-Tool (FxCop) wird ausgeführt. Das dauert länger als erwartet, aber es lohnt sich.

In unserer Umgebung habe ich eine "lokale" Lösung und Projektkonfiguration erstellt, die von "Debug" kopiert wurde. Diese Konfiguration ist größtenteils identisch mit "Debuggen", führt jedoch keine Codeanalyse durch. Dies nutzen unsere Entwickler täglich. Wenn Code in TFS eingecheckt wird, startet er ein Continuous Integration (CI) Build in der "Local" -Konfiguration, wiederum ohne Code-Analyse.

Auf der anderen Seite führt der nächtliche Build die "Debug" -Konfiguration aus, so dass Code-Analyse ausgeführt wird. Ich finde, dass wir nicht die Ergebnisse einer Codeanalyse für jeden Build benötigen, aber es ist verdammt gut einmal am Tag notwendig.

OBTW, Code-Analyse ist nicht neu. Wenn Sie sich die MSDN-Seite ansehen, auf die Sie verlinkt sind, finden Sie eine 2010-Version der Seite im Dropdown-Menü "Andere Versionen". Tatsächlich war die Codeanalysefunktion als Visual Studio-Add-In namens "FxCop" verfügbar, bevor sie Teil des Produkts wurde.

+5

Hallo Danke für die Antwort. Die Seelenbildung wird auf Code-Analyse definitiv wieder aufgebaut. Das Ausgabefenster zeigt dies an. Die Zeit für die Neuerstellung und das Ausführen der Codeanalyse ist nahezu identisch. Die Codeanalyse wird beim Neuaufbau nicht ausgeführt. Die Bauzeit ist viel schneller. – user2732185

2

Ich glaube, dass Johns Aussage oben falsch ist.

Meiner Erfahrung nach werden die Projekte immer neu erstellt, unabhängig davon, ob sie für die Codeanalyse konfiguriert sind oder nicht.

Ich habe eine Lösung mit über 100 Projekten. Wenn ich ein Projekt auswähle und nur eine Codeanalyse für dieses Projekt durchführe, baut es das Projekt und alle davon abhängigen Projekte neu auf. Die Codeanalyse wird in den anderen Projekten nicht ausgeführt, aber sie werden immer noch neu erstellt.

Warum muss es alle untergeordneten Projekte neu erstellen, um Codeanalyse auszuführen?

Verwandte Themen