如何在VS2008中针对3.5的项目中引用framework 4.0 dll

2023-12-01

我有一个使用 4.0 框架在 VS2010 中创建的 dll(是的,它是完整的 4.0,而不是客户端配置文件)。我想在 VS2008 项目中引用它(这意味着即使我愿意,我也无法将引用项目重新定位到 4.0),并且无法将该项目升级到 VS2010。

我理解为什么在 3.5 项目中引用 4.0“项目”会出现问题,但我不明白为什么在 3.5 项目中引用 4.0 dll 会出现问题。据我所知,这可能不是问题所在,但我似乎想不出还有什么可能。

我正在尝试使用 Fasterflect (http://fasterflect.codeplex.com/),它在我的 3.5 项目中严重依赖 4.0 功能(而且,我的公司还没有准备好为 VS2010 掏钱,所以我无法更改那)。一开始一切似乎都很顺利,直到我尝试编译,然后弹出了有关 Fasterflect 程序集未签名的错误。因此,我下载了实际的源代码,对其进行了签名,重新编译,并引用了我新签名的程序集。问题是现在它显示警告符号并显示:

已解决的文件有一个坏图像,没有元数据,或者是其他 无法访问。无法加载文件或程序集 “C:....\Fasterflect.dll”或其依赖项之一。本次大会是 由比当前加载的运行时更新的运行时构建,并且不能 被加载。

我尝试按照此处建议的答案进行操作:http://social.msdn.microsoft.com/Forums/en/clr/thread/36b1a209-55d5-4323-91dc-0919ba2e1d03。但是,当我这样做时,我收到另一条错误消息:

找不到该元素的架构信息 '支持运行时'。 C:....\DynamicSql\App.config

我似乎也无法弄清楚这个错误。

当然必须有某种方法让我在 VS2008 中使用这个 dll?


当您创建针对特定版本框架的项目时,您是在告诉编译器将运行该项目的计算机已安装哪个版本的框架库和运行时。例如,3.5 中的 System.dll 和 4.0 中的 System.dll 不一样,就像 2.0 和 3.5 中的 System.dll 不一样一样。

理论上,您无法保证向前兼容性(3.5 引用 4.0),因为 4.0 程序集可能使用 3.5 中不存在的 API。同样,您无法保证 2.0 在 4.0 中向后兼容,因为某些 API 可能已被弃用和删除。

实际上,4.0 与 3.5 有足够的向后兼容性,它们允许您在 4.0 应用程序中引用 3.5 汇编,但有一些注意事项(有时需要添加指令在您的配置文件中,因为 4.0 中的程序集加载从 3.5 发生了变化)。不幸的是,由于 4.0 引入了大量新 API,3.5 与 4.0 没有太多向前兼容性,因此我认为您无法从 3.5 引用 4.0 程序集。

您可能会因为这个原因看到架构信息异常。 “supportedRuntime”是.NET 4.0 中引入的一个配置元素。但由于您引用的是 3.5 中的程序集,因此解析配置文件的 .NET 3.5 版本的 System.Configuration 无法识别该元素,从而引发异常。

唯一的方法可能是(1)更改源代码并重新编译,修复所有在 3.5 中不起作用的 4.0 库的 API 调用,或者(2)做同样的事情,但在 IL 级别,生成新程序集(您可以使用 al.exe 执行此操作)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在VS2008中针对3.5的项目中引用framework 4.0 dll 的相关文章

随机推荐

  • 如何允许我网站上的访问者在他们的 Facebook 新闻源上分享我的照片?

    如何允许我网站上的访问者在他们的 Facebook 墙 新闻源上分享我的照片 我看到 Facebook 有一个 分享 或 喜欢 选项 但似乎分享了整个页面 我希望每张图片旁边都有一个 Facebook 小图标 当他们单击它时 该特定图像只会
  • Android 5 Lollipop 中通知栏图标变白

    我有一个显示自定义通知的应用程序 问题是 在 Android 5 中运行时 通知栏中的小图标显示为白色 我怎样才能解决这个问题 接受的答案并不 完全 正确 当然 它使通知图标以颜色显示 但这样做有一个很大的缺点 将目标 SDK 设置为低于
  • Facebook-connect 提供重定向循环

    拜托 我需要帮助 我处理这个问题1个月了 我想使用 PHP 和 php sdk 3 1 1 实现 facebook 连接登录到我的网站 简而言之 我的代码可以离线工作 在本地主机上 但不能在线工作 这会导致 重定向循环太多 在 Chrome
  • 如何很好地处理[:-0]切片?

    在实现自相关函数时 我有一个像这样的术语 for k in range start N c k np sum f k f k N k 现在一切正常如果start 1但我想很好地处理开始0没有条件的情况 显然它不起作用 因为f 0 f 0 并
  • Linux 内核中哪里可以找到 TCP 数据(HTTP 下)?

    我正在尝试使用Linux内核中的TCP从HTTP流中读取数据 我能够从中获取大部分数据skb buff here 但是 如果服务器在没有请求的情况下将数据推送到客户端 则数据不会复制到用户空间 这样我就找不到它了 使用 Wireshark
  • 自定义订单排序

    您好 我想根据值 关键 高 中 低 对整个 C 列进行排序 我正在启用宏的工作表上运行此代码 这是我的代码 Sub run Range C C Sort Key1 Range C1 SortOn xlSortOnValues Order x
  • 如何在SSIS控制流任务中创建临时表,然后在数据流任务中使用它?

    我有一个控制流 我在其中使用 T SQL 命令创建临时数据库和表 当我添加数据流时 我想查询该表 但我不能 因为该表不存在可从中获取信息 当我尝试时 我收到有关登录的错误 因为数据库尚不存在 我有延迟验证为真 如果我手动创建数据库和表 然后
  • 使用mysqli_stmt_bind_result时在哪一行检查取数据是否成功?

    我需要向网站访问者表明 如果他对我的数据库进行查询在技术上失败 就会出现问题 想要让 php 代码回显 抱歉 出了问题 如果由于某种原因数据获取失败 以下是我试图实现这一目标的一些方法 3 个样品 它们会导致无休止的循环 从而使我的浏览器崩
  • 使用 Windows.Web.Http.HttpClient 类修补异步请求

    我需要做一个PATCH请求与Windows Web Http HttpClient类 并且没有关于如何执行此操作的官方文档 我怎样才能做到这一点 我找到了如何进行 定制 PATCH与上一个请求System Net Http HttpClie
  • 如何在更改属性后在设计时刷新 winform 自定义控件

    假设我创建了一个嵌入轨迹栏的自定义控件 我还为自定义控件创建了方向属性 当我将自定义控件放在窗体上时 默认情况下它将是水平的 然后我将其设置为垂直 轨迹栏应在设计时刷新为垂直 怎么办呢 我想你应该打电话Refresh 更改值后 public
  • Django cors 标头和服务器错误

    我正在尝试使用 django cors headers 将 COR 添加到我的服务器 但是当我加载页面时 我在服务器上收到此错误 ImproperlyConfigured Error importing module corsheaders
  • jqGrid 没有数据 - 如何设置更突出的“无数据”消息?

    默认情况下 当没有数据时 jqGrid显示消息 No records to view 在寻呼机内 我的网格使用顶部寻呼机 问题是 该消息很容易被错过 我想让网格在顶部标题下方显示消息 如果有任何数据 则在行显示的同一位置 在里面体层 如定义
  • 如何在heroku上为django应用程序安装ffmpeg?

    我想使用 ffmpeg 从视频中提取帧以将其用作海报 这是我第一次部署应用程序 更不用说在heroku上 所以我不知道如何在服务器上安装ffmpeg 我发现了这个 ffmpeg 版本并附有将其 供应商 到我的应用程序中的说明 然后调整我的应
  • Node.js 从网络获取图像并使用 Base64 进行编码

    我正在尝试从网络获取图像并使用 base64 对其进行编码 到目前为止我所拥有的是这样的 var request require request var BufferList require bufferlist BufferList bl
  • java arraylist 对所有元素求和

    如果我有 ArrayList
  • 属性“Id”是对象关键信息的一部分,无法修改

    我正在使用 Entity Framework 4 0 并且有一个我无法弄清楚的愚蠢问题 我有两张桌子 Contact Id 主键 Value ContactTypeId ContactType 的外键 联系人类型 ID 主键 类型 家庭 手
  • 如何使用 apps-script 覆盖内容超过 10MB 的文件?

    我有一个驱动器文件夹 其中有一些 g sheet 文件 每个文件都大于 100MB 我想用最新文件的内容覆盖最旧文件的内容 然后删除除最旧的文件之外的所有文件 我有两个问题 文件 代码 中出现异常 我的内容可能大于 10MB 难道是死路一条
  • Yii2 框架 facebook 和 google 使用 authclient 登录不起作用

    我已按照此处的说明进行操作http www yiiframework com doc 2 0 yii authclient authaction html 它对我不起作用 我正在使用 yii2 authclient 进行社交网站 faceb
  • 在电子表格的应用程序脚本中选择连续范围

    是否可以获取特定单元格周围的范围 类似于电子表格中的 Ctrl A 我有许多电子表格 其中的表格是由QUERY 功能 因此边界是灵活的 过去 我采用设置命名范围的方法 这些命名范围的大小是我预期的 QUERY 结果所需的最大大小 并将这些命
  • 如何在VS2008中针对3.5的项目中引用framework 4.0 dll

    我有一个使用 4 0 框架在 VS2010 中创建的 dll 是的 它是完整的 4 0 而不是客户端配置文件 我想在 VS2008 项目中引用它 这意味着即使我愿意 我也无法将引用项目重新定位到 4 0 并且无法将该项目升级到 VS2010