【问题标题】:Run time Error in converting application from .NET 2.0 to 4.5.1将应用程序从 .NET 2.0 转换为 4.5.1 时出现运行时错误
【发布时间】:2015-05-25 14:32:17
【问题描述】:

我正在尝试将我的应用程序从 .NET 2.0 转换为 4.5.1,但我得到了应用程序的运行时版本。

无法加载文件或程序集“...dll”或其其中之一 依赖项。此程序集由比 当前加载的运行时,无法加载。

我怎样才能摆脱这个? 我是否忘记在我的 Web.config 上添加或修改某些内容?

应用程序的发布过程是通过本地的,发布的文件将复制粘贴到虚拟机中的应用程序服务器上。

【问题讨论】:

  • 您的项目依赖于其他 .Net 项目?如果是,请让您的所有这些项目也得到提升,或者其他依赖项(第三方库或控件)必须具有与源项目相同的目标框架。
  • 这需要大量挖掘——哪些组件?您可以检查 web.config 以获取引用旧程序集(框架甚至第 3 方)的条目
  • 您是否也更新了应用程序池的 .net 运行时版本?
  • @ijaz - 是的,它已经升级到 4.5.1 框架。
  • @EdSF - 实际上它在 VS2013 上运行,但仅在我的本地运行,当我发布它并将其复制粘贴到 VM 时,它返回了程序集上的错误。但它已经是最新版本了。

标签: c# asp.net .net-4.5 .net-2.0


【解决方案1】:

我刚刚通过在VS2013本地发布应用程序解决了这个问题,获取发布版本并使用ff添加和修改应用程序服务器实例的web.config:

<configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="[myDllname].Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
    </sectionGroup>
  </configSections>

  <system.web>
    <globalization uiCulture="auto" culture="auto"/>
    <customErrors mode="Off"/>
    <pages validateRequest="false" controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
      <controls>
        <add tagPrefix="csla" namespace="Csla.Web" assembly="Csla, Version=3.0.3.0, Culture=neutral, PublicKeyToken=93be5fdc093e4c30"/>
      </controls>
    </pages>
    <!--
          Set compilation debug="true" to insert debugging
          symbols into the compiled page. Because this
          affects performance, set this value to true only
          during development.
    -->
    <compilation debug="true" targetFramework="4.5.1">
      <assemblies>
        <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      </assemblies>
    </compilation>
    <identity impersonate="true"/>
    <authentication mode="Windows"/>
  </system.web>

只要确保目标框架处于兼容模式即可。就我而言,我使用的是旧的 CSLA 版本。

【讨论】:

    猜你喜欢
    • 2010-12-10
    • 1970-01-01
    • 2013-03-06
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    相关资源
    最近更新 更多