Я понимаю, что это старая ветка, но вопрос все еще актуален ...
Предполагая использование .NET 4.0, классы System.Diagnostics.Contract уже включены в mscorlib.dll. Поэтому все, что вам нужно для установки в любом месте, - это среда выполнения .NET 4.0.
Вам нужно будет только установить пакет CodeContracts на машины разработчика и любые другие машины, которые компилируют ваши двоичные файлы вплоть до IL (то есть через VisualStudio, msbuild с использованием csc.exe - компилятора C # и т. Д.). В этот установочный пакет входит несколько .exes. Одним из них является «ccrewrite.exe». Это переписывающее устройство IL, которое вставляет код IL в ваши сборки после завершения компилятором. Обратите внимание, что ccrewrite и компилятор .NET, которые вы используете для любого используемого вами языка, не связаны, связаны или имеют какие-либо зависимости.
После того, как ваши двоичные файлы скомпилированы, вам не нужно устанавливать или развертывать что-либо на любом из серверов, на которых будет выполняться ваш код. Это верно независимо от параметров, которые вы настроили в настройках проекта:
- с использованием проверки исполнения контракта
- с использованием статической проверки контракта
- настроен для сборки Справочных сборок CodeContract (их также не нужно развертывать).
Ссылочные сборки CodeContract используются только тогда, когда вам нужно представить свои контракты библиотеке / API, находящемуся за пределами вашего решения, и для этого проекта включена статическая проверка. Вам также не следует напрямую ссылаться на них, и вам не требуется какой-либо шаг после сборки, чтобы скопировать их в какую-либо папку bin (кроме случая, который я только что упомянул о предоставлении их другой библиотеке / API).
НТН