asp.net - project.json 中的 'dependencies' 和 'frameworkAssemblies' 有什么区别?

标签 asp.net asp.net-core

documentation for using project.json对于 ASP.NET 5 应用程序,包含一个示例 project.json 文件(下面的缩写版本)。
frameworkAssemblies 和有什么区别和 dependencies ?

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

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

最佳答案

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

考虑以下示例:
我想使用 ADO.NET api( SqlConnection , SqlCommand ) 来处理 SQL Server 数据库。我知道这些 api 是 System.Data.dll 的一部分所以想引用一下。现在,当安装完整版的 .NET Framework 时,它会在 GAC 中安装一些程序集(也有这个 System.Data.dll),因此您会看到对 frameworkassemblies 的引用在下面的例子中。来到 CoreClr,我需要找出这些类型存在于哪个包中。为此,您可以使用名为 PackageSearch 的网站。 (由 ASP.NET 团队成员构建)您可以在其中搜索类型并找到包名称。基于此你会发现System.Data.SqlClient成为包裹。由于这个包是为 CoreClr 构建的,它是 dependencies 的一部分。 dnxcore50 中的部分部分。

{
    "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 - project.json 中的 'dependencies' 和 'frameworkAssemblies' 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30747965/

相关文章:

javascript - DevExtreme dxGrid 查找列形式显示 id 而不是 DisplayExpr

asp.net - 增量更新asp.net 网站?

asp.net - 一个页面只能有一个服务器端表单标签。

c# - 在.NET core 2 MVC应用程序中配置JWT访问 token

c# - dotnet core 2.2版本中如何使用MySql.Data引用

asp.net-core - mvc获取虚拟目录的方法

asp.net-core - 创建基于路由参数的 ASP.Net Core IAuthorizationRequirement

asp.net - 如何命名要在 Firefox 上下载的文件?

c# - 在页面加载时从 .aspx 中删除下拉项

c# - 在 silverlight 中调用一个 aspx 页面,而不打开它