Mam umowy kodu działa poprawnie od wewnątrz programu Visual Studio 2010, ale nie mogę uzyskać ccrewrite.exe
zrobić nic użytecznego z linii poleceń. Oto app próbki:Dlaczego ccrewrite.exe nie robi nic z wiersza poleceń?
using System.Diagnostics.Contracts;
public class Dummy
{
public static void Main(string[] args)
{
Contract.Requires(args.Length > 0);
}
}
Następnie skompilować kod i uruchomić ccrewrite.exe na nim:
> csc /debug+ /D:CONTRACTS_FULL Dummy.cs
> ccrewrite /o:RewrittenDummy.exe Dummy.exe
elapsed time: 61ms
Nie ma plik RewrittenDummy.exe
później.
Próbowałem wielu opcji, ale nic nie robi żadnej różnicy. Kilka rzeczy zauważyłem:
- To zdecydowanie ładuje Dummy.exe, bo gdybym określić nieistniejącego pliku, umiera
- Dummy.exe zdecydowanie zawiera odniesienia do umowy - jeśli uruchomię go z żadne argumenty, to nie odpowiednio (ale komunikat o błędzie nie został wypełniony w jak będę oczekiwać, gdyby została przepisana)
- Korzystanie postconditions i niezmienników nie robi różnicy
próbowałem obracając ostrzeżenia i gadatliwość w górę, a to wcale nie pomaga Wh co robię źle?
(poprosił także jako question in the Code Contracts forum. Dodam tutaj żadnych stosownych odpowiedzi sam.)
Gdzie mogę dodać ten wiersz? – Pedro77
Ive skomentował wszystkie moje połączenia z Contracts i wrócił do starego i dobrego! = Null ... ccrewrite jest zbyt błędny. – Pedro77
@ Pedro77: Trudno powiedzieć dokładnie, jaki masz problem z tych komentarzy. Być może otworzyć nowe pytanie? –