无法加载文件或程序集“ Microsoft.ML.Api”

时间:2019-08-22 09:25:09

标签: c# ml.net

当我尝试使用LoadFromEnumerable时 加载实现为列表的我的数据集 我收到以下错误(如标题中所述)

  

无法加载文件或程序集'Microsoft.ML.Api,版本= 1.0.0.0,   文化=中性,PublicKeyToken = cc7b13ffcd2ddd51'。系统无法   找到指定的文件

我已更新到ML.net软件包的最新版本,但仍找不到Microsoft.ML.Api的文档

var mlContext = new Microsoft.ML.MLContext();
var trainingData = mlContext.Data.LoadFromEnumerable(dataset);

编辑

Error Message

2 个答案:

答案 0 :(得分:2)

在经典/旧的“ Windows Forms App(.NET Framework)”中出现相同的错误。
需要1 1/2天才能弄清楚如何解决。 :-(

最后,我解决了它,并想与大家分享:

  1. 选择程序->右键单击->“属性”->“构建”选项卡
    ->这里要做两件事:

    1a)将“平台目标”设置为“ x64”。

    1b)单击底部的“高级”按钮,然后检查“语言版本”是否包含最小的“ C#7.1”。
    但是将“语言版本”设置为“ C#最新主要版本(默认)”。

  2. 请仔细阅读:
    选择程序的“参考”->右键单击
    ->“将packages.config迁移到PackageReference ...”。
    按照向导...

真正糟糕的是,上下文菜单项“将packages.config迁移到PackageReference ...” 仅在已将NuGet程序包添加到程序的情况下可用!

因此,如果您在运行时遇到上述错误
但此上下文菜单项未显示
安装一个您选择的虚拟NuGet软件包(最好是一个小的软件包!)。
然后执行步骤2。
然后删除先前安装的“虚拟NuGet程序包”
(因此,请选择程序的“参考”->右键单击->“管理NuGet软件包” ...)

希望对您有所帮助!

答案 1 :(得分:0)

Microsoft.ML.Api是一个旧的程序集名称,已被删除。您可以确保对ML.NET的所有引用都是最新的吗?最新版本是用于稳定程序包(其中大多数)的1.3.1版本,用于预览程序包的0.15.1版本。

如果这对您没有帮助,请发布您的.csproj。