Muh*_*eed 5 .net asp.net-core-mvc .net-core project.json asp.net-core
在一个新的ASP.NET Core RC2类库中,我有以下project.json文件,我试图按照如何修剪包依赖关系的文档.
{
"dependencies": {
"Microsoft.AspNetCore.Mvc.Abstractions": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Mvc.Core": "1.0.0-rc2-final",
"Microsoft.Extensions.Caching.Abstractions": "1.0.0-rc2-final",
"Newtonsoft.Json": "8.0.3"
},
"frameworks": {
"netstandard1.5": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.0.1-rc2-24027",
"Microsoft.NETCore.Runtime": "1.0.2-rc2-24027",
"System.Xml.XDocument": "4.0.11-rc2-24027"
},
"imports": "dnxcore50"
},
"net461": {
"frameworkAssemblies": {
"System.ServiceModel": "",
"System.Xml": "",
"System.Xml.Linq": ""
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我试图消除Microsoft.NETCore.Platforms
和Microsoft.NETCore.Runtime
,一切仍然有效.这可能是因为Microsoft依赖项也指定了这些.这些依赖关系是什么?我应该明确并保留它们吗?
这些包的目的是什么:
Microsoft.NETCore.Platforms
本质上只是一个json文件,它指定运行时标识符(RID).当需要部署特定于平台的代码时(例如,特殊编译的CoreCLR或平台特定的压缩或加密库),使用这些ID(例如osx.10.10-x64
或win7-x86
).它形成了一种树,它允许更通用的平台模式(比如linux
后面的父模式,例如rhel
,它再次是特定支持版本的父模式rhel-7.1-x64
).因此,当有人构建NuGet时,您可以添加一个artifiact,就像部署在所有Linux机器上的程序集(例如,针对标准linux apis进行P/Invoke)或特定的linux发行版(例如使用特殊的RedHat功能).
Microsoft.NETCore.Runtime
是一个棘手的故事.它用于为您的平台查找正确的运行时.
你应该保留它们:既然你没有直接使用它们,那么明确地添加这些依赖项并不会给我的理解带来任何好处.
归档时间: |
|
查看次数: |
3399 次 |
最近记录: |