【问题标题】:Could not load file or assembly 'System.Core, Version=3.5.0.0'无法加载文件或程序集“System.Core,版本=3.5.0.0”
【发布时间】:2023-04-05 17:37:01
【问题描述】:

我有一个最近升级为在 .NET 4.0 上运行的 ASP.NET 3.5 解决方案。尽管如此,该解决方案中的大多数项目似乎仍以 .NET 3.5 框架为目标。

话虽如此,我现在无法调试任何这些项目。我收到以下错误:

解析器错误消息:无法加载文件或程序集“System.Core,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。该系统找不到指定的文件。 === 预绑定状态信息 === 日志:用户 = 我的用户名 日志:DisplayName = System.Core,版本 = 3.5.0.0,文化 = 中性,PublicKeyToken = 31bf3856ad364e35 (完全指定) 日志:Appbase = file:///C:/Projects/myprojectpath/ 日志:初始 PrivatePath = C:\Projects\myprojectpath\bin 调用程序集:(未知)。 === LOG:此绑定在默认加载上下文中开始。 LOG:使用应用程序配置文件:C:\Projects\myprojectpath\web.config 日志:使用 C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config 中的机器配置文件。 日志:政策后参考:System.Core,版本=3.5.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35 LOG:之前看到过相同的绑定,但由于 hr = 0x80070002 失败。

我已经手动编辑了我的项目文件,如here 所述,并添加了以下几行:

<Reference Include="System.Core">
  <RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>

但它没有任何好处。有人可以解释为什么我收到此错误消息以及如何解决它吗?谢谢!

【问题讨论】:

  • 当你将目标框架从VS中的项目属性更改为.Net 4时,它应该会自动更新引用。
  • 我尝试将目标框架更改为 4.0,但没有帮助。
  • 这可能是手动编辑的原因,通常需要单独更改每个项目的目标框架。我可以建议您创建一个相同类型的 .net4 项目,并尝试比较 .csproj 文件源以找出差异。

标签: asp.net .net visual-studio-2010 visual-studio asp.net-4.0


【解决方案1】:

在我的例子中,web.config 中有一行必须删除。

<pages enableEventValidation="true">
    <namespaces>
        <add namespace="System.Linq"/>
    </namespaces>
    <controls>
        <!--<add tagPrefix="asp" namespace="System.Linq" assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>-->
    </controls>
</pages>

(实际上我也可以安全地注释掉&lt;add namespace="System.Linq"/&gt;

【讨论】:

    【解决方案2】:

    我碰巧使用的控件如:

    <assemblies>
                <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    
            </assemblies>
    

    改为:

     <assemblies>
                <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    
            </assemblies>
    

    反之亦然。你可能想检查一下。或者将整个项目(框架或页面)迁移到 .net 4.0 中。有时当我需要处理不同的框架时,我会删除目标框架行。

    【讨论】:

      猜你喜欢
      • 2011-09-04
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-15
      • 2020-05-09
      相关资源
      最近更新 更多