10

如果我想创建使用 .NET Framework 的 ASP.NET Core 1.0 应用程序,是否使用 .NET CLI?.NET CLI 仅适用于新的 .NET Core 库还是同时适用于 Core 和 .NET 4.6?

4

3 回答 3

6

您也可以dotnet cli用于完整的框架应用程序和库。您只需要使用适当的框架标签 - 例如"net46"针对 .NET 4.6。您也可以针对多个框架:

例如,来自我的 Noda Time 库:

"frameworks": {
  "net45": {
    "frameworkAssemblies": {
      "System.Xml": "",
      "System.Numerics": ""
    }
  },
  "netstandard1.1": {
    "buildOptions": {
      "define": [ "PCL" ]
    },
    "dependencies": {
      "System.Diagnostics.Debug": "4.0.11",
      "System.Globalization": "4.0.11",
      "System.Linq": "4.1.0",
      "System.Resources.ResourceManager": "4.0.1",
      "System.Runtime.Extensions": "4.1.0",
      "System.Runtime.Numerics": "4.0.1",
      "System.Runtime.Serialization.Xml": "4.1.1",
      "System.Threading": "4.0.11",
      "System.Xml.XmlSerializer": "4.0.11"
    }
  }
}

PCL处理器符号将在某个时候重命名为“DOTNET_CORE”或类似名称 - 它之所以存在,是因为当我用于针对可移植类库时,我有一堆代码将它用于条件编译。

顺便说一句,您仍然可以定位可移植类库......因此单个包可以定位许多不同的版本。

于 2016-07-06T17:16:16.817 回答
6

如果我想创建使用.NET Framework的ASP.NET Core 1.0应用程序,是否使用CLI

.NET CLI适用于两者,区别实际上是在project.json文件中进行的。例如,您可以使用以下命令编译/构建ASP.NET Core应用程序,而该应用程序实际上是针对完整框架的:

dotnet build

下面是一个project.json针对.NET 4.6的示例。

{
  "frameworks": {
    "net46": { }
  }
}

有关更多详细信息,我总是鼓励人们参考此处找到的文档。同样,由于这是开源的(这太棒了),您可以查看源代码以了解它是如何被使用的。

于 2016-07-06T17:16:39.763 回答
3

CLI 只是工具。您的应用程序将用于运行什么与工具无关(即,只要工具能够为您的目标框架创建正确的应用程序,工具如何运行就无关紧要)。相反,在您的project.json文件中,您以目标框架名字对象的形式指定目标框架(例如net451,对于 .NET Framework 4.5.1 或netcoreapp1.0对于 .NET Core 应用程序等)

于 2016-07-06T17:17:26.847 回答