为什么ccrewrite.exe 不这样做从任何命令?
-
05-07-2019 - |
题
我已经得到了代码合同工作的现从内部Visual Studio2010年,但我不能 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 肯定包含对合同如果我运行它没有参数,它无法适当地(但错误消息还没有填写,因为我想如果它已被改写)
- 使用后置条件和不变是没有区别
我已经试过把警告和详细程度,并没有帮助在所有 我做错了什么?
(还询问,作为一个 问题在代码合同的论坛.我会加入任何相关答案在这里我自己。)
解决方案
好吧,这已经 回答MSDN论坛.这一次,这不是真的我完全愚蠢的-这些东西真的可以做一个警告。
阅读的论坛员额的全部细节,但是基本问题是 ccrewrite
找不到合同类:这是在寻找的。净3.5CLR的版本 mscorlib
而不是的.净4.0个。
这可以通过固定明确的路径有关的组件:
> ccrewrite /o:rewrittendummy.exe dummy.exe
/libpaths:%SystemRoot%\Microsoft.Net\Framework\v4.0.20506
不隶属于 StackOverflow