如果我想创建使用 .NET Framework 的 ASP.NET Core 1.0 应用程序,是否使用 .NET CLI?.NET CLI 仅适用于新的 .NET Core 库还是同时适用于 Core 和 .NET 4.6?
3 回答
您也可以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”或类似名称 - 它之所以存在,是因为当我用于针对可移植类库时,我有一堆代码将它用于条件编译。
顺便说一句,您仍然可以定位可移植类库......因此单个包可以定位许多不同的版本。
如果我想创建使用.NET Framework的ASP.NET Core 1.0应用程序,是否使用CLI?
.NET CLI适用于两者,区别实际上是在project.json
文件中进行的。例如,您可以使用以下命令编译/构建ASP.NET Core应用程序,而该应用程序实际上是针对完整框架的:
下面是一个project.json
针对.NET 4.6的示例。
{
"frameworks": {
"net46": { }
}
}
有关更多详细信息,我总是鼓励人们参考此处找到的文档。同样,由于这是开源的(这太棒了),您可以查看源代码以了解它是如何被使用的。
CLI 只是工具。您的应用程序将用于运行什么与工具无关(即,只要工具能够为您的目标框架创建正确的应用程序,工具如何运行就无关紧要)。相反,在您的project.json
文件中,您以目标框架名字对象的形式指定目标框架(例如net451
,对于 .NET Framework 4.5.1 或netcoreapp1.0
对于 .NET Core 应用程序等)