2011-10-19 12 views
7

Tengo una aplicación C# que está orientada a la versión .Net framework 3.5. El binario funcionó bien cuando .Net Framework 3.5 está instalado. Pero está dando algunos isssues incompatability con .Net 4.0.NET Framework Problemas de incompatibilidad

que estoy viendo la siguiente excepción:

excepción capturada a Método: InitializeComponent línea: 0 Columna: 0 Excepción: No se pudo cargar el archivo o ensamblado ' WindowsFormsIntegration, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 'o una de sus dependencias. El sistema no puede encontrar el archivo especificado.

+6

¿Tiene framework 4.0 Client o Full en la máquina de destino? – Marco

+0

¿Es consistente el error en más de una máquina? –

+1

Además, * idealmente * su código debe usar explícitamente la versión .NET 4.0 de ese dll –

Respuesta

3

creo que toda la información que necesita para resolver este ya ha sido publicado en los comentarios, para resumir, sin embargo:

La información que realmente necesita es en la excepción publicado (el énfasis es mío):

no se pudo cargar el archivo o ensamblado 'WindowsFormsIntegration, versión = 3.0.0.0

Su intentar cargar la versión 3.0 .Net de WindowsFormsIntegration.dll pero no puede encontrar el archivo (o una de sus dependencias), presumiblemente esto se debe a que .Net 3.0 Framework no está instalado en la máquina cliente. Tenga en cuenta que el framework .Net v4.0 es independiente de la versión anterior de .Net framework - no existe garantía de que .Net framework v3.0 esté disponible en una máquina, incluso si .Net framework v4.0 está presente.

Si instala el .NET Framework versión 3.0, entonces su programa de trabajo de nuevo debe (salvo otros problemas), sin embargo en realidad si se apuntan a la NET Framework 4.0 se debe hacer referencia a la versión 4.0 de .Net WindowsFormsIntegration.dll. Simplemente elimine la referencia existente y agregue otra referencia a la versión .Net 4.0 en su lugar.

Nota: la propiedad "Versión específica" es un entorno en tiempo compilador que permite la acumulación de Visual Studio, incluso si no tiene acceso a la versión correcta, en tiempo de ejecución sin embargo, esta opción no tiene efecto - la versión correcta del conjunto debe estar presente. Ver What you need to know about referenced assemblies in VS2005

+0

+1: .Net 4.0 NO contiene 3.5. Sin embargo, creo que la mejor opción es instalar 3.5 en el objetivo en lugar de perder el tiempo tratando de convertir su aplicación a 4.0 – NotMe