Файл *deps.json в.NET Core
Какова цель файла *deps.json в.NET Core? В чем причина хранить ссылки в таком файле, а не в манифесте сборки (как в автономном.NET Framework)?
Используя Ildasm, я проверил, что манифест сборки не содержит записей для этих зависимостей после команды сборки dotnet.
Но у него есть записи после команды публикации dotnet.
1 ответ
.deps.json
Файл содержит метаданные о сборках, на которые ссылается встроенная сборка, и местоположениях для их поиска, а также информацию об используемых параметрах компиляции.
Эта информация читается нативным компонентом (corehost
), который загружает и настраивает среду выполнения. Когда необходимо загрузить указанную сборку, хост будет использовать информацию в этом файле (а также любую другую runtimeconfig.json
/runtimeconfig.dev.json
) найти правильную сборку для загрузки.
Эта информация используется и в других местах. Например, компиляция представления Razor в ASP.NET Core также использует его для передачи правильных ссылок и конфигурации в сгенерированный код. И хосты модульного тестирования также должны использовать информацию в этом файле, когда библиотека тестового модуля загружена в тестовый хост. Управляемый API для чтения и записи этого файла доступен в Microsoft.Extensions.DependencyModel
Пакет NuGet.