Domanda

Secondo questa matrice di funzionalità , Visual Studio 2010 Premium (RC) include " analisi di codice statico " ;.

Tuttavia, l'aggiunta di chiamate a Contract.Requires all'inizio dei miei metodi non sembra avere alcun effetto. Non ottengo eccezioni di runtime se il contratto viene violato. Non ricevo avvisi dal compilatore se non è possibile provare un contratto. Inoltre non riesco a trovare un " Contratti di codice " scheda nelle impostazioni del progetto.

Mi sto perdendo qualcosa di ovvio o questa funzione è disponibile solo nell'ultima edizione?

È stato utile?

Soluzione

Sembra davvero che ci sia un po 'di confusione sul fatto che i Contratti di Codice siano o meno inclusi nel framework fornito con beta 2 di VS2010, o addirittura in VS2010 stesso. Il forum Contratti di codice (ed in particolare questo post) ha diverse menzioni di questo senza ancora risposte.


Non credo che i Contratti di codice rientrino nel titolo dell'analisi statica del codice. Penso che l'analisi del codice statico si riferisca ad altri strumenti di analisi del codice come FxCop.

Ho provato a usare Contract.Requires in VS2010 beta 2 ultimate edition, ma ho lo stesso comportamento di te. Se si guardano le proprietà del progetto nella scheda Analisi del codice, è possibile abilitare l'analisi del codice, ma ciò non si riferisce ai contratti di codice.

Secondo il commento di Melitta (dal team delle biblioteche della classe di base) sull'articolo di connessione Rendi disponibile il controllo statico del contratto dati in Professional Edition :

  

... ma la restrizione sullo strumento di analisi statica sta per questa prossima versione. Mantiene coerente la storia dell'analisi del codice, in quanto gli strumenti di analisi statica richiedono VSTS.

Questo suggerisce che dovrai (dovrai) avere la versione del sistema del team per ottenere la versione in fase di compilazione dei Contratti di Codice.

Altri suggerimenti

Per ottenere l'analisi statica in Beta 2 è necessario scaricare e installare i bit di Contratti di codice (1.2.21023.14 o successivi) da MSDN DevLabs . Quindi sotto le proprietà del progetto, ci sarà ora una scheda Contratti di codice ... da qui puoi attivare l'analisi statica ...

Il comportamento che stai riscontrando è perché l'API Contratti di codice si trova nell'assembly mscorlib, che consente agli assert di funzionare, ma nient'altro.

Suppongo che questo non sarà necessario da RTM.

È necessario attivare il controllo del runtime dei contratti di codice nelle proprietà del progetto. Se il riquadro delle impostazioni non esiste, è necessario installare il download dei Contratti di codice da Microsoft (nonostante il fatto che il contratto sia presente nel framework).

Nelle versioni Professional è disponibile solo il controllo di runtime.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top