【发布时间】:2012-04-02 17:08:55
【问题描述】:
我们为专为 .NET 3.5 构建的软件创建了一个插件。在这个插件中,我们引用了适用于 .NET 3.5 的第三方 .DLL。主软件现在构建为 .NET 4.0,第三方 .DLL 已拆分为两个 .DLL。
我们想要避免的是使用几乎完全相同的代码使用两种不同的解决方案(一种基于 .NET 4.0 构建并引用 4.0 DLL,另一种基于 3.5 构建并引用 3.5 DLL)。并非我们所有的客户都会立即升级到我们为其创建插件的软件的最新版本,有些客户可能会等待数年。
问题已编辑:
有没有办法继续构建到 .Net 3.5 引用 3.5 DLL,然后在运行时执行一些程序集解析以加载两个 .Net 4.0 DLL 来代替原始的?
我们希望/需要继续构建 3.5 框架,以便以前版本的主要软件将继续加载我们的插件。如果我们构建到 4.0,那么旧版本在尝试加载我们的插件时会出错,因为它构建到更高版本的框架。
【问题讨论】:
-
您是否真的尝试过,或者您只是猜测可能有问题?如果你这样做了,那么究竟是什么错误消息?
-
当我尝试使用旧版本的软件加载 4.0 插件时,我收到以下错误:无法加载程序集。错误详细信息:System.BadImageFormatException:无法加载文件或程序集 'file:///C:\Users*******\Documents\Visual Studio 2010\Projects\RandomProjects\A2013Testing\bin\Debug\A2013Testing.dll ' 或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载。文件名:'file:///C:\Users*******\Documents\Visual Studio 2010\Projects\RandomProjects\A2013Testing\bin\Debug\A2013Testing.dll' at System.Reflection..
标签: .net dll assemblies