This page looks best with JavaScript enabled

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

 ·  ☕ 1 min  ·  ✍️ eiximenis

Nota: Este post ha sido importado de mi blog de geeks.ms. Es posible que algo no se vea del todo "correctamente". En cualquier caso puedes acceder a la versión original aquí

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.

Si quieres, puedes invitarme a un café xD

eiximenis
ESCRITO POR
eiximenis
Compulsive Developer