- Proyecto 1 es una asamblea en la solución
- Proyecto 2 es un proyecto conjunto del ejecutable en la misma solución
- proyecto 2 tiene una referencia de proyecto (a través de Agregar referencia) para el proyecto 1
- proyecto 2 no lo hace directamente se refieren a espacios de nombres/tipos de proyecto 1 en el código
- Proyecto 2 utiliza Ninject para cargar dinámicamente Proyecto 1 y el uso de las clases de implementación dentro de ella
Problema:
- A pesar de que copia local se establece en True para la referencia, y no existe el ensamblaje de referencia en la GAC, el ensamblaje de referencia es no copiado en el directorio de construcción de salida
- Ninject posteriormente no encuentra el montaje, y así no pasa la unión/resolución
Este proceso funciona bien para una configuración idéntica donde algunas clases del ensamblaje al que se hace referencia son referenciadas directamente, así como cargadas por Ninject, así que creo que la causa es la siguiente: Si VS detecta que no se hace referencia a ningún tipo dentro de un ensamblaje referenciado a en el código, no copiará el ensamblado al que se hace referencia, incluso si se agrega como referencia con Copy Local = True.
Solución (s):
- Encontrar una manera de decir a VS, "copia local (lo digo en serio)" = True - esto sería mi solución ideal.
- Agregue una referencia de archivo al ensamblado al que se hace referencia. No es genial, ya que pierdo las ventajas de una referencia de proyecto (que puede o no estar del todo en mi cabeza).
- Consulte el ensamblaje de alguna manera 'token' en el código. Desordenado: me gustaría utilizar la lista de Referencias para mantener una lista de conjuntos/módulos que deseo incluir.
- Pasos posteriores a la compilación para copiar el ensamblaje. Desordenado, no ideal.
¿Alguien puede ayudar con la primera solución o sugerir otra?
'Si VS detecta que no se hace referencia a ningún tipo dentro de un conjunto al que se hace referencia en el código, no copiará el ensamblado al que se hace referencia, incluso si se agrega como referencia con Copy Local = True. No creo que sea el caso. Crear una solución ficticia que haga exactamente eso incluye el ensamblaje no utilizado en el contenedor. Es posible que desee intentar construir su solución con msbuild y establecer la verbosidad en el diagnóstico para ver exactamente lo que está sucediendo. – vcsjones
Tienes razón, gracias a las versiones de framework (¿ediciones?) En lugar de usarlas o no. La coincidencia de que en mi configuración de prueba había agregado 2, uno usado y otro no, ambos casi idénticos, aparte de la 'edición' del marco. –