[Code Contracts] ccrewrite – “Unresolved assembly reference not allowed”

Imaginaos que teneis una solución con varios proyectos, y que estos compilan en un directorio concreto, llamésmole Q:bin.

En otra solución teneis varios proyectos más, con referencias a los assemblies que estan en Q:bin (no son referencias de proyecto porque estan en distintas soluciones).

Y ya puestos, imaginad también que estáis usando Code Contracts. Y cuando compilais los proyectos de la segunda solución visual studio se descuelga con un bonito error:

Unresolved assembly reference not allowed: assembly_que_esta_en_Q_bin.dll y el “fichero” que genera el error es ccrewrite.

La solución es ir al proyecto que no compila, abrir sus propiedades y en la pestaña Code Contracts añadir el directorio Q:bin a la entrada “Lib Paths”:

image

Con esto el proyecto debería funcionar correctamente!

La solución gracias a http://social.msdn.microsoft.com/Forums/en-US/codecontracts/thread/7225dc8d-7005-4da7-8a39-688e5b766434

Saludos!

pd1: Que hace la entrada “Lib Paths” de la pestaña Code Contracts? Pues añade los directorios especificados al parámetro /libpaths: de ccrewrite

pd2: Que es ccrewrite? Es el MSIL rewriter de code contracts, el encargado de “mover” todas las precondiciones al principio de todo de nuestro método y de “mover” las postcondiciones justo al final de nuestro método.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *