You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Framework网站引用.NET Standard类库引发FileNotFoundException求助

味,都是实际的解决步骤,格式正确。</think_never_used_51bce0c785ca2f68081bfa7d91973934># 解决System.ComponentModel.Annotations运行时找不到的问题

以下是针对该问题的具体解决步骤:

  • 添加程序集绑定重定向
    .NET Framework项目依赖绑定重定向来统一程序集版本。在网站的web.config的<configuration>节点内添加如下配置,强制将所有旧版本的请求重定向到5.0.0.0:

    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="System.ComponentModel.Annotations" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
          <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
        </dependentAssembly>
      </assemblyBinding>
    </runtime>
    
  • 清理重建并验证依赖部署

    1. 检查网站项目的引用属性,确保System.ComponentModel.Annotations的Copy Local设置为True。
    2. 删除网站和类库项目下的bin、obj文件夹,然后执行清理解决方案→重建解决方案,确保输出目录都是最新的程序集。
    3. 查看packages.config或项目文件,确认NuGet包版本确实是5.0.0,没有残留的4.2.0.0引用。
  • 排查传递依赖
    右键解决方案选择「管理解决方案的NuGet程序包」,切换到「已安装」标签,检查所有项目中System.ComponentModel.Annotations的版本,确保没有间接依赖引入4.2.0.0版本。也可以用dotnet list package --include-transitive命令查看类库的所有传递依赖。

  • 手动部署程序集
    如果上述步骤无效,直接从NuGet包目录(通常是packages\System.ComponentModel.Annotations.5.0.0\lib\net461)复制System.ComponentModel.Annotations.dll到网站的bin目录,确保运行时能找到该文件。

  • 检查发布配置
    若发布到服务器,确认发布设置中勾选了「复制本地所有依赖项」,避免发布过程中遗漏新版本程序集。

内容的提问来源于stack exchange,提问作者Thierry Verhaegen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 10:32:32