【问题标题】:.Net framework Incompatibility Issues.Net 框架不兼容问题
【发布时间】:2011-12-10 18:31:34
【问题描述】:

我有一个针对 .Net framework 3.5 版本的 C# 应用程序。安装 .Net framework 3.5 后,二进制文件运行良好。 但它与 .Net 4.0 存在一些不兼容问题

我看到以下异常:

在方法中捕获异常:InitializeComponent 行:0 列:0 异常:无法加载文件或程序集“WindowsFormsIntegration,版本=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。系统找不到指定的文件。

【问题讨论】:

  • 目标机器上是否有framework 4.0 Client 或Full?
  • 多台机器上的错误是否一致?
  • 你安装了3.5框架吗? 4.0 不包含 3.5 的所有内容。顺便说一句,win7已经包含3.5框架
  • 另外,理想情况下您的代码应该明确使用该 dll 的 .NET 4.0 版本
  • 您是否将 Specific Version 属性设置为 true 以供 WindowsFormsIntegration 参考?

标签: c# .net


【解决方案1】:

我认为解决此问题所需的所有信息都已发布在 cmets 中,但总结一下:

您真正需要的信息在发布的异常中(强调我的):

无法加载文件或程序集'WindowsFormsIntegration,Version=3.0.0.0

它试图加载WindowsFormsIntegration.dll 的.Net 3.0 版本,但找不到文件(或其依赖项之一),这可能是因为客户端计算机上未安装.Net 3.0 框架。请注意,.Net v4.0 框架独立于 .Net 框架的先前版本 - 即使存在 .Net 框架 v4.0,也无法保证 .Net 框架 v3.0 将在机器上可用。

如果您安装 .Net 框架 3.0 版,那么您的程序应该再次运行(除非出现其他问题),但是如果您的目标是 .Net 4.0 框架,您应该参考 .Net 4.0 版的WindowsFormsIntegration.dll。只需删除现有引用并添加另一个对 .Net 4.0 版本的引用即可。

注意:“特定版本”属性是一个编译器时设置,即使 Visual Studio 无法访问正确的版本,它也可以在运行时构建,但此设置无效- 必须存在正确版本的程序集。见What you need to know about referenced assemblies in VS2005

【讨论】:

  • +1:.Net 4.0 不包含 3.5。但是,我相信最好的方法是在目标上安装 3.5,而不是试图将他的应用程序转换为 4.0
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-19
  • 1970-01-01
相关资源
最近更新 更多