Я предполагаю, что ccrewrite пытается пройти цепочку зависимостей, чтобы проанализировать ее на предмет предварительных / постусловий и т. Д. Если на сборки ссылаются сборки, на которые вы, в свою очередь, ссылаетесь, то они потребуются для вашей программа для запуска, поэтому ccrewrite просто выполняет нормальный анализ, прежде чем вы действительно запустите программу.
Это основано на использовании JML; Я только сам начал изучать .NET Code Contracts. Но я считаю, что оба инструмента работают примерно по одним принципам.