Ho sviluppato un progetto C# in Visual Studio Express 2013 e ho trovato Code Contracts per i linguaggi .NET. Impressionato dalla loro brevità e dallo strumento di analisi statica che è venuto con loro, ho iniziato a usarli nella mia base di codice. Tuttavia, quando ho tentato di eseguire il mio programma, ho incontrato un messaggio di errore simile a quello trovato in this SO thread, cioèSupporto per i contratti di codice in Visual Studio Express 2013
... Un assieme (probabilmente "< mio progetto >") deve essere riscritto utilizzando il codice contratti binary rewriter (CCRewrite) perché chiama Contract.Requires e il simbolo CONTRACTS_FULL è definito. Rimuovere eventuali definizioni esplicite del simbolo CONTRACTS_FULL dal progetto e ricostruire ...
Guide suggerire che per risolvere questo problema, devo abilitare contratti codice dalla pagina delle proprietà del mio progetto, ma un codice di ingresso contratti proprietà è da nessuna parte da trovare in Express.
Some MSDN forum threads sembra indicare che tutti gli strumenti per i Contratti di codice sono inclusi nella versione Express, ma la pagina Proprietà Contratti del codice non lo è. Questo sembra essere il caso, dato che sono stato in grado di eseguire il mio progetto in VSE 2013 solo dopo aver attivato i Contratti di codice con una copia di Visual Studio 2012 Ultimate che ho acquisito dalla mia università prima della laurea.
Non c'è davvero alcun modo di lavorare con i Contratti di codice in Visual Studio Express tranne la modifica dei file di progetto manualmente o con una versione a pagamento di Visual Studio? Se questo è il caso, sono estremamente riluttante a usarli del tutto, dal momento che è improbabile che la mia azienda acquisti licenze VS. Inoltre, sembra estremamente strano che Microsoft proverà a diffondere questo nuovo e superiore paradigma di verifica, ma poi lo limiterà solo ai clienti paganti.
Se è possibile abilitarli modificando i file di progetto, non è proprio corretto dire che richiede una licenza VS a pagamento. Non conosco la risposta alla tua domanda, ma sono curioso di sentire le conclusioni. – recursive
@recursive Lasciando tutte le librerie e gli strumenti per i Contratti di codice in Express ma richiedendo di pagare per la voce di menu delle proprietà del progetto che li abilita è ciò che mi confonde. La modifica manuale dei file di progetto generati dalla macchina non è davvero pratica - non è questo il motivo per cui l'IDE è lì in primo luogo? –
@MattKline: non sono mai stato usato VS Express. Intendi dire che la pagina delle proprietà del progetto per i Contratti di codice è assente in Express Edition? Se è così, questo è veramente stupido. – Dennis