私は、Visual Studio 2010内から細かい作業コードの契約を持っているが、私はccrewrite.exe
は、コマンドラインから有用な何かをすることができません。ここではサンプルアプリケーションです:ccrewrite.exeがコマンドラインから何もしないのはなぜですか?
using System.Diagnostics.Contracts;
public class Dummy
{
public static void Main(string[] args)
{
Contract.Requires(args.Length > 0);
}
}
私は、コードをコンパイルして、その上にccrewrite.exeを実行します。
> csc /debug+ /D:CONTRACTS_FULL Dummy.cs
> ccrewrite /o:RewrittenDummy.exe Dummy.exe
elapsed time: 61ms
何RewrittenDummy.exe
ファイルはその後ありません。
私はオプションの負荷を試してみたが、何も任意の違いを作るんです。私が気づいたいくつかのこと:
- 私は存在しないファイルを指定した場合、それは死ぬので、それは間違いなく、Dummy.exeをロードしていますDummy.exeは間違いなく契約の参照が含まれてい
- - 私はそれを実行した場合引数、それが適切に失敗した(ただし、エラーメッセージは、それが書き直されていた場合、私は期待通りに記入されていない)
- なし事後条件と不変条件を使用すると私は警告を回してみたに違い
を行うものではありません冗長性が上がって、それはまったく助けにならない Wh私は間違っていますか?
は(またquestion in the Code Contracts forumとして尋ねた。私はここで自分自身を任意の関連する答えを追加します。)
私はこの行を追加します。どこに? – Pedro77
Iveはすべての私の契約書にコメントして、古くて良いものに戻った!= null ... ccrewriteはバグが多い。 – Pedro77
@ Pedro77:これらのコメントからあなたの問題が何であるかを正確に伝えるのは難しいです。おそらく新しい質問を開きますか? –