2008-10-21 8 views
6

Al agregar una referencia a un proyecto a veces veo el mensaje ...marco de destino no coincidente

"La versión marco de destino para el proyecto es más alto que el proyecto actual versión del marco de destino. ¿Quieres añadir esta referencia a tu proyecto de todos modos? "

Entiendo lo que indica el mensaje, pero ¿alguien puede explicar qué problemas pueden surgir al decir 'Sí'?

Respuesta

10

Supongamos que crea una aplicación donde el exe se dirige a 2.0, pero algunos objetivos de biblioteca son 3.5. Alguien con una máquina .NET 2.0 mira el proyecto principal y piensa que puede ejecutarlo; después de todo, la aplicación apunta a 2.0, ¿no? Cuando la biblioteca se carga por primera vez, obtendrá una desagradable sorpresa ...

+3

Pero de alguna manera esto estuvo bien para compilar en VS2008, VS2010 de repente se niega a construir tales proyectos. Es un escenario muy común cuando se tienen referencias adicionales en compilaciones de depuración. –

1

En realidad, esto está perfectamente bien. VS simplemente te está haciendo consciente. Solo asegúrese de copiar las referencias necesarias a su proyecto y hacer referencia a ellas. Si el proyecto al que hace referencia es uno sobre el que tiene control, puede poner las referencias allí.

Por ejemplo, tenemos un servidor anterior de Windows 2000 que no puede ejecutar .Net 3.5. Entonces, cuando queremos aprovechar cosas como LINQ lo creamos en un proyecto separado que apunta a 3.5. A continuación, hacemos referencia a ese proyecto desde nuestra aplicación web, que apunta a 2.0. Recibimos el mensaje del que habló, pero solo nos aseguramos de que las DLL de System.core y Link.Data se copien en la carpeta bin y se mencionen. Entonces no hay problema. Funciona de maravilla.

Cuestiones relacionadas