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