我已经搜索过了,但我找到了很多答案,但不是针对我的问题:
正如定义所述:
为了开发跨平台应用程序,我打算创建ASP.NET核心应用程序(.NET),它可能引用其他类库,这些类库可能使用:
我假设,如果我使用任何(标准或核心),我的应用程序仍将支持其他操作系统。
在某些情况下,我看到人们在类库中使用传统的.NET框架和.NET标准?
例如,假设我有一个类库,其中包含project.json:
"dependencies": {
"Microsoft.Extensions.Caching.Abstractions": "1.0.0",
"Microsoft.Extensions.Options": "1.0.0",
"StackExchange.Redis.StrongName": "1.1.608",
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.5": { }
}依赖与框架有何不同?以及项目如何解析程序集,因为标准库只是一个规范。
发布于 2016-11-03 18:49:18
在这种情况下,应用程序在使用.NET框架时是否仍然跨平台?
实际上,.Net框架应用程序不会在.Net核心上运行。但是它可能运行在mono上,这在Linux和Mac上都是可用的。
什么时候我应该混合和使用组合(标准,核心,网络)?
如果可以的话,您应该对库使用.Net标准(即,只要它们没有任何特定于框架的依赖项)。
如果应用程序具有特定于.Net框架的依赖关系,或者应用程序只能使用.Net框架,则可以对其使用.Net框架。
如果您的应用程序需要跨平台,或者您想使用最新的API,您可以使用.Net核心。(.Net核心通常比.Net框架更新得更快,而且还有预览版本。)
在框架之间使用和混合的最佳实践是什么?
我不明白这个问题。不能将.Net框架和.Net核心混合在同一个应用程序中。
如何避免冲突和构建失败?
我不认为这是一个可以回答的问题,尽管我可以提供一些显而易见的建议:
编辑:
依赖与框架有何不同?
"frameworks": { "netstandard1.5": { } }意味着库是一个.Net标准1.5库,并决定可以从哪个框架中使用它。
"dependencies": { "NETStandard.Library": "1.6.0" }实际上引入了作为.Net标准库一部分的包。这也意味着库可以访问所有的.Net标准库,而不仅仅是其中的一些子集。
由于标准库只是一个规范,项目如何解析程序集?
NETStandard.Library所依赖的包不仅仅是一个规范。例如,包System.IO.Compression.ZipFile包含:
ZipFile for .Net Framework4.6的实现,它只是转发给System.IO.Compression.FileSystem框架程序集ZipFile(要自己查看包中的内容,我推荐NuGetPackageExplorer。)
https://stackoverflow.com/questions/40407164
复制相似问题