【问题标题】:Why can't I access a namespace added through NuGet?为什么我无法访问通过 NuGet 添加的命名空间?
【发布时间】:2017-08-02 13:28:07
【问题描述】:

因为我想在我的程序中使用矩阵,所以我在 Visual Studio 2015 中通过 NuGet 添加了 Math.NET 库。但是,虽然我可以在 Project References 文件夹中看到库文件,但 VS 似乎无法识别任何对它的引用。在编写 using 命令时,自动完成不会建议 MathNet,当然,它也不会识别该命名空间中的任何类。我还缺少其他步骤吗?

【问题讨论】:

  • 检查引用 - 是否成功添加了 Meth.NET 引用并且没有黄色感叹号
  • 您在参考文献中看到了吗?
  • 您是否将软件包安装在正确的项目中?也许你在安装 nuget 包时选择了不同的项目
  • 并且只是为了确保这一点清楚 - 尽管要遵循某些约定倾向于,但任何特定程序集中包含的 NuGet 包名称、程序集名称和命名空间都是三个正交的概念。您通过 NuGet 添加命名空间,而是添加了一个包。
  • @Leo-MSFT 我意识到“使用”显然不包括子命名空间,因此在使用 MathNet.Numerics.LinearAlgebra 之后,IDE 确实识别出新的对象类型。

标签: c# visual-studio-2015 nuget using mathnet-numerics


【解决方案1】:

虽然我仍然不能说为什么自动完成没有建议命名空间(即使在尝试构建它之后它确实最终显示在建议中),但我可以确认我的问题的根源是矩阵和向量需要使用 MathNet.Numerics.LinearAlgebra 导入,而不是 MathNet.Numerics。

【讨论】:

    【解决方案2】:

    为什么我无法访问通过 NuGet 添加的命名空间?

    添加使用命令时是否报错:using MathNet.Numerics;

    不知道为什么在你编写 using-command 时自动完成不会提示 MathNet,它在我的机器上运行良好,我将在这里写详细步骤,以便你检查差异,然后寻求帮助。

    详细步骤:

    1. 新建一个空白的 C# 类库项目。
    2. 通过 NuGet 将包 MathNet.Numerics 添加到项目中。
    3. 打开一个 .cs 文件,添加 using MathNet.Numerics 并实例化一个类“Permutation”(大多数类是静态类)。

    【讨论】:

    • 在注意到 Permutation 类工作正常后,我意识到如果我使用 MathNet.Numerics.LinearAlgebra 编写,IDE 可以识别 Vector 和 Matrix 类。编译器在导入库时不包括所有子文件夹吗?
    • @KönigNickerchen,您现在可以访问通过 NuGet 添加的命名空间吗?如果以上答案解决了您的问题,您可以将其标记为答案,这样可以帮助遇到相同问题的其他社区成员。如果没有,请告诉我你的问题。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 2011-07-30
    • 2012-12-21
    • 2010-11-28
    • 1970-01-01
    • 2020-12-12
    相关资源
    最近更新 更多