2012-06-19 5 views
7

私は、契約を使用してコンパイル時に自分のタイプの検証を追加しようとしていますが、残念ながら動作しません。以下のコード例は、プロジェクトをコンパイルする際にコンパイラエラーを出しません。私は何かを有効にすべきですか?Contract.Assertはコンパイルエラーを投げません

Contract.Assert(false, "Invalid state!"); 

答えて

7

はい、静的検査を有効にする必要があります。プロジェクトのプロパティに移動し、[コード契約]タブにアクセスします。もちろん、静的チェッカー拡張機能をインストールしておく必要があります。IIRCはVisual Studio Ultimateでのみ使用できます。使用可能なオプションの詳細については、user documentationを参照してください。

の後に、最初のコンパイルフェーズのが発生するので、ビルドの最初の部分と静的チェッカーの結果の間に遅延があることがあります。 (これは実際には「コンパイラ」エラーではなく、「契約確認」エラーです。)

+2

[コード契約](http://research.microsoft.com/en-us/projects/contracts/)パッケージには、 Expressを除くVSのほぼすべてのバージョンで動作する契約用静的チェッカー( 'cccheck.exe')。あなたが究極のバージョンを持っていれば、偉大な、あなたはしない - 心配することなく、契約はプロフェッショナルとうまく動作します。 :) –

+0

ユーザマニュアルはもう存在しません。プロジェクトはgithubに移動されました。 –

+1

@JohnDemetriou:更新済みですが、将来新しいリンクが分かっている場合は、リンクを更新するための回答を編集する方が良いでしょう。 –

関連する問題