在 .NET 中添加程序集引用

Add assembly reference in .NET

我很难在我的 .NET 应用程序中安装 GemBox.Spreadsheet 包。这是我第一次使用 .NET (C#)。我有 Node.JS 背景,所以我不明白这个问题。

我已经安装了 dnu install GemBox.Spreadsheet,一切看起来都很好,但我仍然看到错误 'The type or namespace name 'GemBox' could not be found'

更新-

我找到了这个 并尝试重现,但没有成功。

那是我的 project.json:

{
  "version": "1.0.0-*",
  "compilationOptions": {
    "emitEntryPoint": true
  },
  "dependencies": {
    "NETStandard.Library": "1.0.0-rc2-23811",
    "GemBox.Spreadsheet": "39.3.30.1153"
  },
  "frameworks": {
    "dnxcore50": {
        "GemBox.Spreadsheet": "39.3.30.1153"
    }
  }
}

谢谢。

此包与 dnxcore50 不兼容,似乎仅 运行 在桌面 .NET Framework 上。

您需要在 project.json 中以桌面框架为目标(请记住,您不会 运行 在 CoreCLR 上使用)。例如,您可以将框架更改为 dnx451

what does dnxcore50 mean?

要完全回答这个问题需要很长时间,但这是要点。

您正在使用所谓的 "project.json" 类型的 .NET 项目。它们是新的,它们在 beta/preview.

Microsoft 的另一个组成部分是 运行 次。有桌面框架,它是从 2001 年就存在的 .NET Framework,还有许多其他的 .NET Framework。例如,另一个是 .NET Core。 Core 可以 运行 在 Windows 以外的操作系统上运行,但它没有与 Desktop .NET Framework 相同的功能集。在您的 project.json 文件中,您将 dnxcore50 作为您支持的框架,即 .NET Core。

但是,您尝试使用的这个 nuget 包不支持这个框架。它仅支持桌面 .NET Framework。您可以通过将 dnxcore50 更改为 dnx451 来更改应用程序使用的框架。然而,这将意味着您的项目只能 运行 在 Windows 上的桌面 .NET Framework 上,也许 OS X.

上的 Mono

尝试以下操作:

在解决方案资源管理器中,select 项目。 稍后,在项目菜单上,单击添加引用。之后,使用 GemBox.Spreadsheet 名称添加对 dll 的新引用。它应该在 .net 选项卡下。

最后在代码命名空间的顶部,使用:

using GemBox.Spreadsheet;