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

Publicado 11/6/2009 17:22 por Eduard Tomàs i Avellana

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.

Archivado en:
Comparte este post: