Tengo contratos de código funcionando bien desde Visual Studio 2010, pero no puedo obtener ccrewrite.exe
para hacer algo útil desde la línea de comandos. He aquí una aplicación de ejemplo:¿Por qué ccrewrite.exe no hace nada desde la línea de comandos?
using System.Diagnostics.Contracts;
public class Dummy
{
public static void Main(string[] args)
{
Contract.Requires(args.Length > 0);
}
}
entonces puedo compilar el código y ejecutar ccrewrite.exe en él:
> csc /debug+ /D:CONTRACTS_FULL Dummy.cs
> ccrewrite /o:RewrittenDummy.exe Dummy.exe
elapsed time: 61ms
No hay archivo de RewrittenDummy.exe
después.
He intentado muchas opciones, pero nada hace la diferencia. Unas pocas cosas que he notado:
- Es, definitivamente, la carga de Dummy.exe, porque si puedo especificar un archivo inexistente, se muere
- Dummy.exe definitivamente contiene referencias a contrato - si funciono con sin argumentos, que no forma apropiada (pero el mensaje de error no ha sido rellenado como yo esperaría si se hubiera reescrito)
- Usando poscondiciones e invariantes no hace ninguna diferencia
he intentado convertir advertencias y verbosidad arriba, y eso no ayuda en absoluto Wh ¿Estoy haciendo algo mal?
(también pidió como question in the Code Contracts forum. Voy a añadir respuestas pertinentes aquí mismo.)
Cuando añado esta línea? – Pedro77
He comentado todas mis llamadas de contratos y volví a lo viejo y bueno! = Null ... ccrewrite tiene demasiados errores. – Pedro77
@ Pedro77: Es difícil decir exactamente cuál es su problema a partir de estos comentarios. Tal vez abrir una nueva pregunta? –