当前位置:  开发笔记 > 编程语言 > 正文

将项目的.NET目标框架从4.0更改为3.5后,找不到文件(或程序集)

如何解决《将项目的.NET目标框架从4.0更改为3.5后,找不到文件(或程序集)》经验,为你挑选了2个好方法。

我想改变我的C#项目,它基于.NET 4.0到3.5.所以我将项目的目标框架更改为3.5.

重新打开并尝试编译项目后,我收到错误:

无法找到文件或程序集"System.Drawing,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a"或其中一个依赖项.系统找不到该文件.odereineAbhängigkeitdavonwurde nicht gefunden.Das System kann die angegebene Datei nicht finden.

这发生在Resource.resx文件中,如下所示:


    
        ..\Resources\traktor_connected.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    
    
        ..\Resources\traktor-not-connected.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    

stack72.. 5

该引用指向.Net 4 - 您需要删除所有.net 4引用,然后使用.net 3.5版本的组件读取它们然后它将工作

保罗



1> stack72..:

该引用指向.Net 4 - 您需要删除所有.net 4引用,然后使用.net 3.5版本的组件读取它们然后它将工作

保罗



2> Hans Passant..:

更改目标框架设置并不完美.例如,在C#项目中,您必须手动删除对Microsoft.CSharp的引用.是的,它不会自动更新.resx文件中的System.Drawing程序集引用.这是一个相当大的缺陷,当你增加 .NET版本号(几乎每个人通常都会这样做)时可以正常工作,kaboom如果你试图减少它..NET只是向前兼容.

在更改目标框架后,您必须删除资源并将其添加回来.非常痛苦,可以手动编辑.resx文件以最小化工作.右键单击.resx文件,打开方式,然后选择文本编辑器.将程序集名称的版本从4.0.0.0更改为2.0.0.0.

但请注意,可能存在比较复杂的资源,如ImageList,其数据以二进制形式嵌入.resx中.您将在.resx文件中看到一小块base64编码的字节.它也嵌入了版本号,由BinaryFormatter完成.VS不会为你做这件事的可能原因.编写一个将base64字符串解码回byte []的小程序,找到正确的0x34并将其更改为0x32并将其转换回base64只是一个黑客的喜悦,男人超过机器风格:)最好只重新添加到避免几乎不可避免的oopses.

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有