Ich weiß, das ist ein älterer Thread aber die Frage ist immer noch ein gültiger ...
Unter der Annahme, sind die Verwendung von .NET 4.0, die System.Diagnostics.Contract Klassen bereits in mscorlib.dll enthalten. Alles, was Sie irgendwo installiert haben müssen, ist die .NET 4.0-Laufzeitumgebung.
Sie müssen nur die CodeContracts Paket an die Entwickler Maschinen installiert haben und alle anderen Maschinen, die Ihre Binärdateien nach unten zu IL kompilieren (das heißt über Visual Studio, msbuild csc.exe mit - den C# -Compiler, etc.). Das Installationspaket enthält mehrere .exes. Einer von ihnen ist "ccrewrite.exe". Dies ist ein IL-Rewriter, der IL-Code in Ihre Assemblys einfügt nach der Compiler wurde abgeschlossen. Beachten Sie, dass ccrewrite und der .NET-Compiler, den Sie für die von Ihnen verwendete Sprache verwenden, nicht sind, verbunden sind oder alle Abhängigkeiten teilen.
Sobald Ihre Binärdateien kompiliert sind, müssen Sie nichts auf den Servern installieren oder bereitstellen, auf denen der Code ausgeführt wird. Dies gilt unabhängig der Optionen, die Sie in Ihrem Projekteinstellungen konfiguriert haben:
- mit Runtime Contract
- mit Static Vertrag prüfen
- konfiguriert Überprüfung der CodeContract Reference Assemblies zu bauen (die Sie nicht brauchen um diese entweder zu implementieren).
- usw.
Die CodeContract Reference Assemblies nur verwendet werden, wenn Sie Ihre Aufträge an eine Bibliothek/API aussetzen müssen, die außerhalb Ihrer Lösung ist und statische Überprüfung wird für das Projekt freigegeben. Sie sollten auch nicht direkt auf sie verweisen, noch benötigen Sie irgendeine Art von Post-Build-Schritt, um sie in einen beliebigen bin-Ordner zu kopieren (außer in dem Fall, den ich gerade erwähnte, um sie einer anderen Bibliothek/API auszusetzen).
HTH