project.json中的'dependencies'和'frameworkAssemblies'有什么区别?
What is the difference between 'dependencies' and 'frameworkAssemblies' in project.json?
ASP.NET 5 个应用程序的 documentation for using project.json 包括一个示例 project.json 文件(下面的缩写版本)。
frameworkAssemblies
和 dependencies
有什么区别?
为什么 dnx451
使用一个而 dnxcore50
使用另一个?
{
"version": "0.1-alpha-*",
...
"frameworks": {
"dnx451": {
"frameworkAssemblies": {
...
}
},
"dnxcore50": {
"dependencies": {
...
}
}
}
frameworkAssemblies
指的是存在于 GAC(全局程序集缓存)中的程序集。
考虑以下示例:
我想使用 ADO.NET apis(SqlConnection
, SqlCommand
) 来处理 SQL 服务器数据库。我知道这些 api 是 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-*"
}
}
}
}
ASP.NET 5 个应用程序的 documentation for using project.json 包括一个示例 project.json 文件(下面的缩写版本)。
frameworkAssemblies
和 dependencies
有什么区别?
为什么 dnx451
使用一个而 dnxcore50
使用另一个?
{
"version": "0.1-alpha-*",
...
"frameworks": {
"dnx451": {
"frameworkAssemblies": {
...
}
},
"dnxcore50": {
"dependencies": {
...
}
}
}
frameworkAssemblies
指的是存在于 GAC(全局程序集缓存)中的程序集。
考虑以下示例:
我想使用 ADO.NET apis(SqlConnection
, SqlCommand
) 来处理 SQL 服务器数据库。我知道这些 api 是 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-*"
}
}
}
}