2011-05-13 74 views
5

我正在运行Visual Studio 2010. 我只是将我的项目的框架工作从4.0更改为3.5。我删除了参考Microsoft.Framework,它要求我删除然后尝试编译。我现在得到的错误:c#更改框架错误

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

我知道,它指的是代码在我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> 

会怎样我现在纠正这个,我的框架是3.5?

+0

您正在使用什么版本的Visual Studio ? – 2011-05-13 15:41:27

+0

visual studio 2010 – toosweetnitemare 2011-05-13 17:30:35

+0

我有一些bug,但为.net 2.0创建的项目初始化之前它的工作,但一些Visual Studio更新后它打破。是否存在System.Drawing 4.0? – devi 2012-01-26 13:43:46

回答

4

您可以尝试通过右键单击.resx文件并从上下文菜单中选择“运行自定义工具”来重新生成该文件。

编辑:在执行此操作之前,更改访问修饰符或添加新值以强制重新生成。

另一个编辑:见Downgrade an application from .net 4.0 to 3.5另一个可能性

+0

我这样做的时候仍然会出现同样的错误。我的代码中似乎没有任何改变。 – toosweetnitemare 2011-05-13 15:35:00

+0

更改访问修饰符或添加新值以强制重新生成 – stuartd 2011-05-13 15:37:32

+0

我进入resrouces.resx文件并将访问修饰符从内部更改为公共并按下F5。然后我试图再次运行自定义工具。没有运气 – toosweetnitemare 2011-05-13 15:41:40

3

我遇到了一个Visual Studio bug导致我类似的问题。我用这个解决方法来解决它:

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)

但我必须解决,每次我改变的东西在那种形式。

+0

林没有看到我会做出这一改变。你可以请更具体吗? – toosweetnitemare 2011-05-13 15:46:34

+0

在我的情况下,单击错误使我直接进入该行。我刚把'j00'改成了'j0y'。 – 2011-05-13 15:47:57

+0

这是错误带给我的位置“ .. \ malware2.jpg; System.Drawing.Bitmap,System.Drawing,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a” – toosweetnitemare 2011-05-13 15:51:43

1

不确定这一点,但由于其他答案没有帮助,试试这个。文件中的Version=4.0.0.0告诉编译器使用.net 4.0程序集。尝试将它们更改为Version=3.5.0.0Version=2.0.0.0并查看是否可以解决此问题。

+0

谢谢,我解决了这个问题,必须将所有版本= 4.0.0.0更改为版本= 2.0.0。0,并在我的启动时添加了useLegacyV2RuntimeActivationPolicy =“true – toosweetnitemare 2011-05-13 17:41:46

0

有这个问题很长一段时间,我失去了希望微软修复这个bug有史以来。然后,我开始使用人工编写的代码的手柄图片包含资源:

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

点忘记设置属性“建设行动” picture.gif以“嵌入式资源”