【问题标题】:How to access Nuget repository from .NET Core using Visual Studio Code如何使用 Visual Studio Code 从 .NET Core 访问 Nuget 存储库
【发布时间】:2016-11-12 01:43:23
【问题描述】:

我正在和一个朋友一起开发一个 .NET Core 项目,我们正在按照我们认为最好的方式分摊工作。我们目前正在尝试配置一个数据库应用程序以与之通信,因此我们需要一个数据库“驱动程序”库。

我决定使用 MongoDB,我发现 this page 这似乎表明以下代码将以某种方式配置我们的项目以使用该库。选择 .NET Core 和 Nuget(我已经在本地和我们的服务器上安装了这两个),我得到以下代码,这似乎是添加库的方式:

<packages>
    <package id="MongoDB.Driver.Core" version="2.3.0" />
    <package id="MongoDB.Bson" version="2.3.0" />
</packages>

问题是,我不知道如何使用它,也不知道在哪里使用它。我正在查看的配置文件几乎完全是 json。我觉得这实际上是为 Visual Studio 设计的,因为它的项目文件仍然使用 XML。

所以问题是:如何从外部库导入函数以使用 Visual Studio Code 进行 .NET Core 开发?我怀疑我只需要将它翻译成合适的格式 (JSON) 就可以了,但我不确定它会是什么样子,也不知道它应该放在哪个文件中。

我尝试通过打开快速菜单来执行此操作,输入选择 >Nuget: Add Package,然后找到并选择包 MongoDB.Driver.Core,但这会导致错误消息:

Could not read project.json, please try again.

我不完全理解这一点,我怀疑可能是 project.json 在项目的根级别是必需的,在我的情况下不是这样,但这并不完全有意义。

【问题讨论】:

    标签: c# mongodb visual-studio-code .net-core


    【解决方案1】:

    我已经尝试创建一个新项目,看起来存在一个错误,即 Code 期望 project.json 位于打开文件夹的根目录(它不是)。我的最终解决方案是将"MongoDB.Driver.Core": "2.3.0" 添加到 project.json 文件中,所以现在看起来像这样(这是添加了位的默认 project.json):

    {
      "version": "1.0.0-*",
      "buildOptions": {
        "debugType": "portable",
        "emitEntryPoint": true
      },
      "dependencies": {
        "MongoDB.Driver.Core": "2.3.0"
      },
      "frameworks": {
        "netcoreapp1.0": {
          "dependencies": {
            "Microsoft.NETCore.App": {
              "type": "platform",
              "version": "1.0.1"
            }
          },
          "imports": "dnxcore50"
        }
      }
    }
    

    【讨论】:

    • 我还在寻找一个更好的答案,这个问题涵盖了这个问题,但它绝不是完整的。
    • 由于缺乏兴趣,我将其标记为答案。如果有人对为什么会发生这种情况提出更好的解释,请分享,但这至少会让人们通过。
    【解决方案2】:

    这是一个旧帖子,但想分享,因为我正在寻找相同的内容: 由于您已经有一个正在使用 VSCode 的 .NET 项目,因此您可以像这样使用“dotnet”命令:

    dotnet add package MongoDB.Driver --version 2.11.6
    

    【讨论】:

    • 我认为在发布此内容时,没有通过 CLI 进行 dotnet 包管理,只有 Visual Studio 本身提供的 GUI。不过我欢迎这个答案,而且由于这个问题最近引起了极大的关注——另外,因为这篇文章没有标记为 dotnet 版本,我会将此标记为答案!
    【解决方案3】:

    更新:

    现在在 .NET Core 2.0 之前,我在 Visual Studio Code Nuget 包扩展中使用。您可以通过 VSC 中的扩展工具或从 URL 下载此扩展:

    https://marketplace.visualstudio.com/items?itemName=jmrog.vscode-nuget-package-manager

    要使用这个扩展,请使用CTRL + SHIFT + P,然后输入Nuget Package Manager: Add Package,然后下载你想要的:)!

    【讨论】: