【问题标题】:What's difference between .NetCoreApp and .NetStandard.Library?.NetCoreApp 和 .NetStandard.Library 有什么区别?
【发布时间】:2016-07-03 09:09:44
【问题描述】:

.Net Core 1.0 已经在几天前发布了,我已经开始使用它了。我创建了一个简单的解决方案,其中一个项目(类库 => .NetStandard.Library)和第二个控制台应用程序(.NetCoreApp)。关键是,控制台应用程序引用了库,但我不能使用该库的类型。这两个框架不兼容吗?我错过了什么吗?

控制台应用程序的project.json:

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },

  "dependencies": {
    "ConsoleApplicationLibrary": "1.0.0-*",
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0"
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": "dnxcore50"
    }
  }
}

库的project.json:

{
  "version": "1.0.0-*",

  "dependencies": {
    "NETStandard.Library": "1.6.0"
  },

  "frameworks": {
    "netstandard1.6": {
      "imports": "dnxcore50"
    }
  }
}

我已经弄清楚了,它可以工作,并且代码可以编译,但是 Visual Studio 仍然将库中的类型突出显示为未知。

【问题讨论】:

  • 您是否恢复了应用程序的包?
  • 主题和帖子之间,你问的问题太多了。将其缩小到一个,否则您的问题可能会被关闭。

标签: c# .net .net-core


【解决方案1】:

最可能的问题是 .Net Core 期望 ConsoleApplicationLibrary 是 NuGet 包。如果要引用项目,请使用"ConsoleApplicationLibrary": {"target": "project", "version": "1.0.0-*"}。

完成此操作后,不要忘记恢复包。

【讨论】:

    【解决方案2】:

    好的,这很奇怪,但是在禁用 resharper、重新启动 VS 并重建解决方案后,它工作正常。似乎对 .net 核心的 resharper 支持存在问题。 (resharper v.9.1.3)。从这里:resharper ultimate blog 我知道目前只有终极版本支持.net core。

    【讨论】:

    • 您为什么希望一年前的 ReSharper 支持不到一个月前发布的 .Net Core?
    • 未来证明、天真和草药的混合体? :)
    【解决方案3】:

    .NetCoreApp 是一个平台,.NetStandard.Library 是一个应该是跨平台的库(可移植类库),适用于各种 .NET 平台运行时。

    您可以在任何受支持的 .NET 平台项目中包含 NetStandard.Library 的直接引用(包),例如 .NETCoreApp(Dot Net Core 1.X)

    参考:https://docs.microsoft.com/en-us/dotnet/articles/standard/library

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题,结果我需要将 Resharper 更新到最新版本。我有 v9.1.1,所以我将它更新到 2016.3.2 并解决了这个问题。

      【讨论】:

        猜你喜欢
        • 2021-03-23
        • 2016-08-26
        • 2010-10-02
        • 2011-12-12
        • 2010-09-16
        • 2012-03-14
        • 2012-02-06
        • 2011-02-25
        • 2011-11-22
        相关资源
        最近更新 更多