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

ASP.NET Web应用引用.NET6类库时System.Runtime加载失败求助

解决.NET 4.8 Web Forms引用.NET 6类库的依赖加载错误

问题原因

.NET Framework 4.8 和 .NET 6 属于不同的框架体系,直接跨框架引用类库会导致.NET 6专属的组件(比如System.Runtime 6.0.0.0)无法在.NET Framework环境中被找到。而控制台应用运行正常是因为它和类库同属.NET 6环境,依赖可以正常加载。

解决方案

1. 将类库目标框架改为.NET Standard 2.0

.NET Standard 2.0 同时兼容.NET Framework 4.8 和.NET 6,是跨框架共享代码的最佳选择:

  • 右键类库项目 → 选择「属性」
  • 在「应用」标签页的「目标框架」下拉菜单中选择.NET Standard 2.0
  • 重新训练机器学习模型,确保生成的模型代码和依赖包都适配.NET Standard 2.0

2. 配置Web项目的绑定重定向

在Web项目的web.config中添加运行时绑定重定向,解决组件版本冲突:

<configuration>
  <!-- 其他配置节点 -->
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="4.2.2.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Collections" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="4.0.11.0" />
      </dependentAssembly>
      <!-- 根据实际报错添加其他需要重定向的组件 -->
    </assemblyBinding>
  </runtime>
</configuration>

3. 确保Web项目安装兼容的NuGet包

在Web项目中安装适配.NET Framework 4.8的Microsoft.ML相关包,比如Microsoft.ML(推荐版本v1.7.1及以上,需支持.NET Standard 2.0),避免依赖缺失。

4. 验证调用代码

保持原有调用代码不变,重新编译并运行Web项目:

var sampleData = new MLModel1.ModelInput()
{
    Mood = @"happy",
    Smell = @"rosegarden",
    Place = @"mountain",
    Drink = @"mojito",
    Category = @"trending",
    Gender = @"unisex",
    Time = @"both",
    Occasion = @"special",
    Feel = @"elegant",
    Ingredientsp1 = @"woody",
    Ingredientsp2 = @"ip5",
};

var result = MLModel1.Predict(sampleData).ToString();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 00:05:24