Я бы не советовал добавлять 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
проекта.