Visual Studio 2008 y 2010 se comportan de manera diferente cuando se hace referencia ensamblados en el sistema de archivos?

StackOverflow https://stackoverflow.com/questions/3446637

Pregunta

Estoy viendo un fenómeno extraño en Visual Studio 2010.

Mi proyecto de instalación es la siguiente (I heredó este - no puede cambiar en cualquier momento pronto, por desgracia: - ():

  • una aplicación Winforms que utiliza Crystal Reports X (v10) como su motor de informes; completa CR X Developer Edition está instalado en mi caja dev

  • varias aplicaciones de formularios web que el uso de Crystal Reports XI (v11) como su motor de informes - no se puede instalar CR XI versión completa, ya que choca con CR X Edición Dev ....

Con el fin de hacer que las cosas funcionen en nuestro servidor de compilación, también creé una carpeta Library dentro del directorio del proyecto de la aplicación Windows Forms con los archivos de tiempo de ejecución CR X que necesito, así como una carpeta Library dentro del directorio del proyecto de la aplicación web con el CR los archivos de tiempo de ejecución XI.

En VS 2008, yo era capaz de recoger los montajes necesarios de la carpeta de la biblioteca respectiva en mis proyectos Winforms (varias bibliotecas de clases, etc.), y en mis aplicaciones web. Todo funcionó muy bien.

Cuando he actualizado a Visual Studio 2010, ahora de repente estoy viendo:

  • en mis aplicaciones Winforms, todas las referencias a los archivos de tiempo de ejecución CR X están siendo actualizadas automagicamente utilizar los archivos CR X de la GAC ??- esto es no lo que quiero! No sirve de ayuda si elimino esas referencias y volver a añadir de nuevo con navegar a la carpeta Library - cuando los recojo, VS2010 parece automagicamente conver referencias a GAC ??nuevo ...

  • en mis aplicaciones web, las cosas se ponen aún peor: cuando cojo las asambleas de tiempo de ejecución CR XI de la carpeta Library, de nuevo, VS2010 automagicamente parece detectar hay archivos similares (mismo nombre, pero diferentes versiones) en el GAC y utiliza esos archivos en lugar - ahora mis aplicaciones web ya no funcionan .....

Lo que el h *** está pasando con VS 2010 aquí ?? Por qué no puede dejar a mis selecciones solo y me deja elegir mis archivos de tiempo de ejecución de una carpeta Library en lugar de insistir en ir a la GAC ???? Lo que ha cambiado entre VS 2008 y VS 2010 a este respecto ?? ¿Cualquier persona tiene una visión de esto ??

¿Fue útil?

Solución

Puede ser útil a cualquiera

(1) vaya a Herramientas \ Opciones \ Proyectos y Soluciones \ Build & Run y ??el cambio de MSBuild verbosidad de 'diagnóstico' y luego construir y en la ventana de salida de ver cómo la resolución de referencia lógica MSBuild está trabajando para esos montajes. Es decir, si VS no lo haya hecho algo ridículo al subyacente .csproj

(2) comparar el código XML en el archivo de proyecto de VS2008 en comparación con el archivo de proyecto VS2010 para ver qué hay en el <Reference> nodos

Una conjetura especulativa salvaje: el proyecto VS2010 se dirige a ".NET 4.0 Client" (en lugar de ".NET 4.0 (marco completo)", y las bibliotecas necesitan el marco completo y MSBuild ve esta dependencia y está utilizando lógica de repliegue .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top