frameworkAssemblies
指的是全局程序集缓存(GAC)中存在的程序集。
考虑以下例子:
我想使用 ADO.NET apis(SqlConnection
, SqlCommand
) 来操作 SQL Server 数据库。我知道这些 apis 是属于 System.Data.dll
的,所以我想引用它。现在当完整版本的 .NET Framework 安装时,它会在 GAC 中安装一些程序集(包括这个 System.Data.dll
),因此您会在下面的示例中看到对 frameworkassemblies
的引用。关于 CoreClr,我需要找出这些类型存在于哪个软件包中。为此,您可以使用名为 PackageSearch
的网站(由 ASP.NET 团队成员构建)进行搜索,找到包名。基于此,您将发现 System.Data.SqlClient
是该软件包。由于此软件包是为 CoreClr 构建的,因此它是 dnxcore50
部分内的 dependencies
部分的一部分。
{
"version": "1.0.0-*",
"description": "Test App",
"dependencies": {
},
"frameworks": {
"dnx451": {
"frameworkAssemblies": {
"System.Data": "4.0.0.0"
}
},
"dnxcore50": {
"dependencies": {
"System.Data.SqlClient": "4.0.0-beta-*"
}
}
}
}
现在假设你想在你的应用程序中添加对json序列化和反序列化的支持,并且想要引用 Json.Net nuget 包。Json.Net nuget 包支持桌面和核心clr,因此您可以将它放在两个框架通用的 dependencies
部分中。
{
"version": "1.0.0-*",
"description": "Test App",
"dependencies": {
"Newtonsoft.Json": "6.0.6"
},
"frameworks": {
"dnx451": {
"frameworkAssemblies": {
"System.Data": "4.0.0.0"
}
},
"dnxcore50": {
"dependencies": {
"System.Data.SqlClient": "4.0.0-beta-*"
}
}
}
}