2013-08-30 15 views
6

Dopo aver aggiornato la nostra soluzione a Visual Studio 2012, stiamo cercando di sfruttare la nuova funzionalità Code Analysis. Tuttavia, sta impiegando troppo tempo per essere eseguito, perché sta ricostruendo il progetto e i progetti dipendenti prima dell'esecuzione, anche se il codice non è cambiato e non ha bisogno di una ricostruzione.Analisi del codice di prevenzione dalla ricostruzione di progetti e dipendenze in Visual Studio 2012

C'è un modo per fermarlo ricostruendo il codice se non è necessaria una ricostruzione?

+0

Abbastanza sicuro che la ricostruzione sia l'analisi del codice statico in esecuzione. –

risposta

1

Se si sta solo iniziando a utilizzare l'analisi del codice, si potrebbero confondere i sintomi. Stai visualizzando: e analisi 1. Codice tiene una notevole quantità di tempo, e 2. Durante l'analisi del codice, il progetto si basa

Si può essere la combinazione di questi due sintomi e giungendo alla conclusione che l'analisi del codice impone una ricostruire il tuo progetto. Questo sarebbe un falso assunto. Prova questo:

  1. Assicurarsi che i vostri progetti siano configurati per non analisi del codice di esecuzione della corporatura
  2. ricostruire la vostra soluzione. Si noti quanto tempo ci vuole
  3. Corporatura (non ricostruire) la soluzione, ma questa volta, si noti quanto tempo ci vuole

vi accorgerete che la vostra soluzione in realtà "costruisce", ma dal momento che i progetti sono aggiornati, i compilatori e altri strumenti non funzionano.

Quindi, è vero che l'analisi del codice esegue prima una build della soluzione, ma sarà una build come la # 3 sopra - non è cambiato nulla, quindi gli strumenti non verranno eseguiti. Verrà eseguito solo lo strumento di analisi del codice (FxCop). Questo richiede più tempo di quanto potresti aspettarti, ma ne vale la pena.

Nel nostro ambiente, ho creato una soluzione "locale" e una configurazione di progetto, copiata da "Debug". Questa configurazione è la stessa di "Debug", ma non esegue analisi del codice. Questo è ciò che i nostri sviluppatori usano quotidianamente. Quando il codice viene controllato in TFS, avvia una build CI (Continuous Integration) nella configurazione "Locale", nuovamente, senza analisi del codice.

D'altra parte, la compilazione notturna esegue la configurazione "Debug", quindi esegue l'analisi del codice. Trovo che non abbiamo bisogno dei risultati di un'analisi del codice su ogni build, ma è dannatamente necessario, una volta al giorno.

OBTW, l'analisi del codice non è nuova. Se guardi la pagina MSDN a cui sei collegato, troverai una versione 2010 della pagina nel menu a discesa "Altre versioni". In effetti, la funzionalità di analisi del codice era disponibile come componente aggiuntivo di Visual Studio chiamato "FxCop", prima che diventasse parte del prodotto.

+5

Ciao Grazie per la risposta. L'anima è definitivamente ricostruita di nuovo sull'analisi del codice. La finestra Output mostra questo. Il tempo di ricostruire da solo ed eseguire l'analisi del codice è quasi lo stesso. L'analisi del codice non viene eseguita quando si ricostruisce. Il tempo di costruzione è molto più veloce. – user2732185

2

Credo che la dichiarazione di Johns sopra non sia corretta.

Nella mia esperienza, i progetti vengono sempre ricostruiti indipendentemente dal fatto che siano configurati per l'analisi del codice o meno.

Ho una soluzione con oltre 100 progetti. se seleziono 1 progetto ed eseguo l'analisi del codice solo su quel progetto, ricostruisce quel progetto e tutti i progetti da cui dipende. Non esegue analisi del codice sugli altri progetti, ma li ricostruisce comunque.

Quindi, perché è necessario ricostruire tutti i progetti figlio per eseguire l'analisi del codice?

Problemi correlati