【问题标题】:What is the difference between 'dependencies' and 'frameworkAssemblies' in project.json?project.json 中的“dependencies”和“frameworkAssemblies”有什么区别?
【发布时间】:2015-08-25 05:03:49
【问题描述】:

用于 ASP.NET 5 应用程序的 documentation for using project.json 包含一个示例 project.json 文件(以下缩写版本)。

frameworkAssembliesdependencies 有什么区别?

为什么dnx451 使用一个而dnxcore50 使用另一个?

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

【问题讨论】:

    标签: asp.net asp.net-core


    【解决方案1】:

    frameworkAssemblies 指的是存在于 GAC(全局程序集缓存)中的程序集。

    考虑以下示例:
    我想使用 ADO.NET apis(SqlConnection, SqlCommand) 来处理 SQL Server 数据库。我知道这些 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-*"
                }
            }
        }
    }
    

    【讨论】:

    猜你喜欢
    • 2019-11-08
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 2015-11-11
    • 2010-10-02
    • 2011-12-12
    • 2010-09-16
    • 2012-03-14
    相关资源
    最近更新 更多