Eu não recomendaria adicionar ValueTuple
como referência de pacote aos projetos do .NET Framework. Como você sabe, esse assembly está disponível no 4.7 .NET Framework.
Pode haver certas situações em que seu projeto tentará incluir a todo custo ValueTuple
da pasta do .NET Framework em vez da pasta do pacote e isso pode causar alguns erros de montagem não encontrados.
Hoje tivemos esse problema na empresa. Tivemos solução com 2 projetos (eu simplifiquei demais):
Lib
estava incluindo ValueTuple e Web
estava usando Lib
. Aconteceu que, por algum motivo desconhecido, Web
ao tentar resolver o caminho, ValueTuple
estava HintPath
no diretório do .NET Framework e estava usando a versão incorreta. Nosso aplicativo estava travando por causa disso. ValueTuple
não foi definido no .csproj
da Web
nem HintPath
para que a montagem. O problema era muito estranho. Normalmente, ele copiava o assembly da pasta package. Desta vez não era normal.
Para mim, é sempre um risco adicionar System.*
referências de pacotes. Eles são frequentemente como bomba-relógio. Eles estão bem no começo e podem explodir na sua cara no pior momento. Minha regra geral: não use o System.*
pacote Nuget para .NET Framework se não houver necessidade real deles.
Resolvemos nosso problema adicionando manualmente ValueTuple
no .csproj
arquivo dentro Web
do projeto.