Ответ 1
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, он является частью раздела 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-*"
}
}
}
}