【问题标题】:Assembly built by a newer runtime error after converting to Web App转换为 Web 应用程序后由较新的运行时错误构建的程序集
【发布时间】:2011-11-26 04:44:49
【问题描述】:

我最近一直在将网站项目转换为 Web 应用程序项目。旧网站在 App_Code 文件夹中有一个 C# 文件,即使项目的其余部分在 VB 中也能正常工作。由于我已将项目转换为 Web 应用程序,.cs 文件将不再编译,因此我将 .cs 文件移动到其自己的项目中以编译为 .dll 并将其包含在解决方案中,以便单独编译。问题是现在当我运行该站点时,我收到一个引用该 dll 的运行时错误:

此程序集由比当前加载的运行时更新的运行时构建,无法加载。

我无法降级 .cs 文件的 .net 框架,因为它使用 System.Web.Linq,它只能追溯到 3.5。当我尝试更改网络应用程序的框架时,它已经显示为 4.0(这对我来说毫无意义)。服务器的版本信息是:

版本信息:Microsoft .NET Framework 版本:2.0.50727.3623; ASP.NET 版本:2.0.50727.3618

是否可以在不更改服务器上的 .net 框架的情况下恢复旧功能?我只是缺少配置文件还是什么?

【问题讨论】:

  • 在 Web.Config 中尝试 targetFramework="4.0" 吗?
  • 即使 webapp 是 vb.net 项目,您也可以将 c# 项目包含在 web 应用的同一解决方案中。无需单独将其放在一边并引用程序集而不是 Visual Studio 中的源项目。

标签: .net asp.net dll version web-applications


【解决方案1】:

您可能需要更改运行网站的应用程序池正在使用的 .NET 框架版本。确保在服务器上安装了较新版本的框架,然后按照本页底部的说明,在“将 IIS 应用程序与 IIS 7.0 中的 .NET Framework 4 关联”下:http://msdn.microsoft.com/en-us/library/dd483478.aspx

【讨论】:

    【解决方案2】:

    如果您将框架保持在 2.0,请尝试引用“System.Core”并确保“Copy Local”=true 或手动将该文件移动到服务器。您还需要 .NET 2.0 SP1 才能完成这项工作。

    【讨论】:

      【解决方案3】:

      在升级服务器之前,我会尝试将 C# 3.5 项目升级到 4.0。可能是当 C# 文件尝试与 Web 应用程序对话时发生错误。

      编辑:一个更好的主意可能是将您的网络应用程序降级到 3.5。这样,应用程序的两个部分都在同一版本上,并且 3.5 应该能够在 2.0 服务器上运行。

      【讨论】:

      • 抱歉回复缓慢,但事实证明这是问题所在。我需要将我的应用程序降级到 3.5 以允许它在服务器上运行。感谢大家的帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-04
      • 2021-01-08
      • 2020-02-06
      • 2018-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多