2011-05-13 11 views
5

Estoy ejecutando Visual Studio 2010. Acabo de cambiar el marco de mi proyecto de 4.0 a 3.5. Eliminé el Microsoft.Framework de referencia que me pidió que eliminara y luego intenté compilar. Ahora sale el error:C# change framework error

Error 1 Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. Line 123, position 5. C:\Users\\Documents\Visual Studio 2010\Projects\\\Properties\Resources.resx 123 5

Sé que se está refiriendo al código en mi archivo resources.resx:

<resheader name="reader"> 
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    </resheader> 
    <resheader name="writer"> 
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    </resheader> 
    <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    <data name="pix-300x300" type="System.Resources.ResXFileRef, System.Windows.Forms"> 
    <value>..\pix-300x300.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> 
    </data> 
    <data name="pix2" type="System.Resources.ResXFileRef, System.Windows.Forms"> 
    <value>..\pix2.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> 
    </data> 
    <data name="pix4" type="System.Resources.ResXFileRef, System.Windows.Forms"> 
    <value>..\pix4.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> 
    </data> 
    <data name="pix3" type="System.Resources.ResXFileRef, System.Windows.Forms"> 
    <value>..\pix3.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> 
    </data> 

cómo iba a corregir esto ahora que mi marco es de 3,5?

+0

¿Qué versión de Visual Studio está usando ? –

+0

visual studio 2010 – toosweetnitemare

+0

Tengo un error, pero proyecto creado originalmente para .net 2.0 Antes de que funcione, pero después de algunas actualizaciones de estudio visual se rompe. ¿Existe System.Drawing 4.0? – devi

Respuesta

4

Puede intentar regenerar el archivo haciendo clic derecho en el archivo .resx y seleccionando 'Ejecutar herramienta personalizada' en el menú contextual.

Editar: antes de hacer esto, cambie el Modificador de acceso o agregue un nuevo valor para forzar una regeneración.

Otra edición: Ver Downgrade an application from .net 4.0 to 3.5 para otra posibilidad

+0

Todavía obtengo el mismo error cuando hago eso. Nada parece haber cambiado en mi código. – toosweetnitemare

+0

Cambie el Modificador de acceso o agregue un nuevo valor para forzar una regeneración – stuartd

+0

Ingresé al archivo resrouces.resx y cambié el modificador de acceso de interno a público y presioné F5. Entonces traté de ejecutar la herramienta personalizada de nuevo. No tuve suerte – toosweetnitemare

3

me encontré con un Visual Studio bug que me causó un problema similar. Usé esta solución para resolverlo:

A fix that SEEMS to work is to manually alter one character in the image stream EVERY TIME the usercontrol or form is edited in the designer

<data name="icons_20.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64"> 
    <value> 
    AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w 

Change to

 AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w 

That is 00LjAuMC4w back to 0yLjAuMC4w at the end of the line (00 back to 0y)

Pero tengo que arreglar eso cada vez que cambio algo de esa forma.

+0

No veo dónde haría ese cambio. ¿Puedes ser más específico por favor? – toosweetnitemare

+0

En mi caso, al hacer clic en el error me llevó directamente a esa línea. Acabo de cambiar un 'j00' por' j0y'. –

+0

aquí es donde el error me trae " .. \ malware2.jpg; System.Drawing.Bitmap, System.Drawing, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a " – toosweetnitemare

1

No estoy seguro de esto, pero como las otras respuestas no fueron de ayuda, intente esto. El Version=4.0.0.0 en su archivo le dice al compilador que use los ensamblados .NET 4.0. Intente cambiarlos a Version=3.5.0.0 o Version=2.0.0.0 y vea si eso lo resuelve.

+0

Gracias. Resolví el problema. Tuve que cambiar toda Version = 4.0.0.0 a Version = 2.0.0.0 y agregado useLegacyV2RuntimeActivationPolicy = "verdadero para mi inicio – toosweetnitemare

0

Teniendo este problema durante mucho tiempo, perdí la esperanza de que Microsoft solucionara este error. Entonces comienzo código escrito manual de uso para el mango contiene imágenes de los recursos:

string resource = "Company.Namespace.Resources.picture.gif"; 
pictureBox1.Image = new Bitmap(Assembly.GetExecutingAssembly() 
.GetManifestResourceStream(resource)); 

Dot se olvide de establecer la propiedad "Construir la acción" de picture.gif a "recurso incrustado"