Я сбрасывал с проект .NET Standard и NuGet. У меня есть рабочий проект и загрузил его на NuGet.org. Мой проект нацелен на .NET Standard 1.3, который должен поддерживать.NET Framework 4.6 и .NET Core 1.0.
Но когда я попытался добавить свой проект (через NuGet) в новый проект .NET Framework 4.6, зависимости были разрешены для 47 пакетов! Все они являются системными библиотеками и являются зависимыми от Microsoft.NETCore.Platforms или NETStandard.Library 1.6.1. (Gist полного выхода PM.)
Мой проект импортирует (using
) несколько библиотек, ни один из которых я не добавил вручную; то есть все библиотеки, которые "поставляются с" стандартом .NET. Эти библиотеки:
- Система
- System.Text
- System.Reflection
- System.Linq
- System.Collections.Generic;
Дело в том, что я решил сделать свой проект целевым .NET Standard, потому что я хотел, чтобы он работал без проблем в приложениях .NET Framework и .NET Core. Я думал, что все, что нужно Стандарту, - установить минимальный уровень совместимости. По-видимому, я предположил (возможно, ошибочно), что библиотеки, такие как System.Console, будут автоматически доступны либо в Core, либо в Framework.
Я не заметил ничего подобного, когда тестировал свой стандартный проект как зависимость в проекте Framework и Core в рамках одного и того же решения, поэтому я подозреваю, что это может быть NuGet.
Что здесь происходит? И как я могу сделать свою библиотеку .NET Standard доступной на NuGet без огромного списка зависимостей?
Это проблема с тем, как я определил свой пакет NuGet? Или я в корне неправильно понял что-то?