Я бы не советовал добавлять ValueTupleв качестве ссылки на пакет проекты .net Framework. Как вы знаете, эта сборка доступна в 4.7 .NET Framework.
Могут быть определенные ситуации, когда ваш проект будет пытаться включить любой ценой ValueTupleиз папки .NET Framework вместо папки пакета, и это может вызвать некоторые ошибки сборки не найдены.
У нас была эта проблема сегодня в компании. У нас было решение с 2 проектами (я упрощаю это):
Libбыл в том числе ValueTuple и Webиспользовал Lib. Оказалось, что по неизвестным причинам Webпри попытке пути постановляем ValueTupleимел HintPathв папку .NET Framework и принимает неправильную версию. Наше приложение зависало из-за этого. ValueTupleне был определен .csprojиз Webни HintPathдля этой сборки. Проблема была очень странной. Обычно это скопировало бы сборку из папки пакета. Это время не было нормальным.
Для меня всегда есть риск добавить System.*ссылки на пакеты. Они часто похожи на бомбу замедленного действия. С ними все хорошо с самого начала, и они могут взорваться тебе в худший момент. Мое практическое правило: не используйте System.*пакет Nuget для .NET Framework, если в этом нет реальной необходимости.
Мы решили нашу проблему, добавив вручную ValueTupleв .csprojфайл внутри Webпроекта.