Asp.net ';依赖关系';和';框架组件';在project.json中?

Asp.net ';依赖关系';和';框架组件';在project.json中?,asp.net,asp.net-core,Asp.net,Asp.net Core,ASP.NET 5应用程序的示例文件包括一个示例project.json文件(以下缩写版本) 框架程序集和依赖项之间有什么区别 为什么dnx451使用其中一个,而dnxcore50使用另一个 { "version": "0.1-alpha-*", ... "frameworks": { "dnx451": { "frameworkAssemblies": { ... } }, "dnxcore50": { "de

ASP.NET 5应用程序的示例文件包括一个示例project.json文件(以下缩写版本)

框架程序集
依赖项
之间有什么区别

为什么
dnx451
使用其中一个,而
dnxcore50
使用另一个

{
  "version": "0.1-alpha-*",
  ...
  "frameworks": {
    "dnx451": {
     "frameworkAssemblies": {
        ...
      }
    },
    "dnxcore50": {
     "dependencies": {
       ...
     }
  }
}

框架程序集指存在于GAC(全局程序集缓存)中的程序集

考虑以下示例:
我想使用ADO.NET API(
SqlConnection
SqlCommand
)来处理SQL Server数据库。我知道这些API是
System.Data.dll
的一部分,所以我想引用它。现在,当安装完整版本的.NET Framework时,它会在GAC中安装一些程序集(GAC也有这个
System.Data.dll
),因此在下面的示例中可以看到对
frameworkassemblies
的引用。谈到CORECRL,我需要找出这些类型存在于哪个包中。为此,您可以使用名为(由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.NETNuget包既支持桌面clr,也支持核心clr,因此您可以将其放在两个框架通用的
依赖项
部分

{
    "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-*"
            }
        }
    }
}

感谢链接到包搜索,这个网站是辉煌的-