我们有一个在3.5版本的.Net Framework中构建的项目。我们将此项目更新为.Net Framework的4.0版本,在我们解决了所有问题之后,我们注意到Web服务初始化期间出现了显着的延迟。
我们将项目还原为3.5框架并解决了我们的滞后问题。我们有第二个项目依赖于使用4.5 Framework dll,因此第二个项目需要在4.5版本中构建。
我知道之前已经问过这个问题,答案一直是不可能的 - 但这是可能的,因为我们实际上有这个确切的结构按照下面msdn论坛上提供的步骤工作,但是只使用<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6">
运行时而不是仅显示4.0。
问题是我们重新添加了一个全新的服务调用到我们的Web服务,现在当我们尝试访问项目引用时,它会抛出一个错误,它正在访问一个基于较新版本构建的项目, BadImageFormatException。
在上面的论坛中讨论了这个确切的错误,并声明您需要在<startup>
部分中将标准2.0参考和4.0参考包括为<supportedRuntime>
,并且我们同时包含他们在。
<startup>
<supportedRuntime version="v2.0.50727"/>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
我认为问题是app.config没有加载两个运行时。我认为这种情况正在发生,因为如果我们按照以下方式切换supportedRuntimes的顺序......
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
<supportedRuntime version="v2.0.50727"/>
</startup>
我们在尝试访问任何3.5 Framework引用时都会出现错误。
现在,添加supportedRuntime的顺序很重要 - 在第二组代码中,它更倾向于使用4.5版本而不是3.5 Framework,但它应该尽可能使用3.5 Framework,对吗?我可以离开这里,但就像我说我们有这个工作 - 不幸的是我没有为我的代码集创建一个标签,所以我不能只回到工作代码集。
任何人都可以想到我可能遗失的任何内容,或者有人能告诉我是否可以专门告诉一组代码在vb.Net中使用4.5 Framework?
答案 0 :(得分:0)
我非常确定您至少在运行时只需要一个受支持的运行时,因为每个进程只加载一个运行时。
我非常有信心,因为我一直使用最新框架上运行的3.5编译DotLisp,所以我可以访问DotLisp REPL中的最新内容。