В настоящее время я выполняю миграцию проекта библиотеки для поддержки .NET Standard 1.1 с помощью Visual Studio 2017.
Я надеялся выпустить проект как единый пакет NuGet, который может ориентироваться как на .NET Framework 4.5+, так и на .NET Core, UWP и т.д.
Однако, когда я пытаюсь установить полученный пакет в проектах .NET Framework, создается огромный список зависимостей пакетов, содержащий все пакеты, определенные в стандарте .NET(см. ниже):
Я понимаю, что это все сборки, определенные как часть спецификации .NET Standard 1.1. Однако для моего конкретного проекта на самом деле требуется только крошечный набор из них, и этот список зависимостей будет чрезвычайно запутанным для тех, кто устанавливает пакет в своих проектах.
Я попытался выполнить ответ на аналогичный вопрос, где рекомендация заключалась в изменении спецификации проекта, чтобы ссылаться только на точные зависимости, необходимые для проекта.
Однако ответ был в контексте старого формата project.json, который теперь был заменен новым .csproj-форматом в VS 2017. Я попытался удалить зависимость от метаклапа .NET Standard 1.1, удалив <TargetFramework>
, но мне удалось сломать сборку и не удалось найти способ специально добавить только необходимые зависимости.
Обещание перемещать библиотеки в .NET Standard для максимальной совместимости с платформой чрезвычайно привлекательно, но что является рекомендуемым способом структурирования зависимостей, так что проекты, ориентированные на "классическую".NET Framework, не находят своих проектов "загрязненными" всеми эти зависимости?