Notas de versão do NuGet 6.10

Veículos de distribuição NuGet:

Versão NuGet Disponível na versão do Visual Studio Disponível no(s) SDK(s) .NET
6.10.2 Visual Studio 2022 versão 17.10 8.0.3xx1

1 Instalado com o Visual Studio 2022 com qualquer carga de trabalho .NET

Resumo: O que há de novo na versão 6.10.2

Problemas corrigidos nesta versão

  • Reverta a habilitação do gerenciamento central de pacotes de forma implícita quando o Directory.Packages.props existir - #11834

Lista de confirmações nesta versão

1 Instalado com o Visual Studio 2022 com qualquer carga de trabalho .NET

Resumo: O que há de novo na versão 6.10.1

Problemas corrigidos nesta versão

  • A restauração/atualização do Visual Studio e do PMC falha quando vários projetos packages.config na solução compartilham o mesmo nome (um item com a mesma chave já foi adicionado) - #13465

  • ##[error]O comando nuget falhou com o código de saída (1) e erro (Um item com a mesma chave já foi adicionado. - #13456

Lista de confirmações nesta versão

Resumo: O que há de novo na versão 6.10

  • [Recurso]: adicionar o comando dotnet nuget config - #12469

  • Avisar quando vulnerabilidades forem detetadas durante a restauração do packages.config - #12307

  • Exiba uma barra de informações de vulnerabilidade quando houver vulnerabilidades em projetos baseados em packages.config. - #13271

  • [Erro]: VS Credential Provider incorretamente definindo o valor de isRetry - #11210

  • dotnet list package --vulnerable requer login constante para um feed NuGet de terceiros - #12456

6.10.0 Problemas conhecidos

NuGet.exe 6.10.0 e Visual Studio 17.10.0 podem ter falhas durante operações NuGet para projetos que usam packages.config nos seguintes cenários:

  • Dois ou mais projetos na solução têm o mesmo nome
  • Dois ou mais projetos na solução usam o mesmo arquivo packages.config (os arquivos de projeto existem no mesmo diretório)

Esses problemas foram corrigidos no NuGet.exe 6.10.1 e Visual Studio 17.10.2.

Problemas e discussões de rastreamento público podem ser encontrados nos seguintes locais:

Alterações de grande impacto

  • Adicionar anotações anuláveis ao NuGet.Configuration - #13250

  • [Pesquisa de Pacotes Dotnet] O resultado da pesquisa do pacote deve ser "version" em vez de "latestVersion" ao executar o comando "dotnet package search <Package Name> --exact-match --format json" - #13158

  • ResolvedDependencyKey deve ser uma struct para reduzir alocações de memória - #13138

  • [DCR]: Gerenciamento Central de Pacotes - Respeite o arquivo .props como uma forma de aceitar o recurso. - #11834

  • Remover NuGet.Packaging.Core - #12495

Problemas corrigidos nesta versão

  • Avise quando vulnerabilidades sejam detetadas durante a restauração de packages.config em cenários de interface de linha de comando. - #13253

  • Pare de usar JObject na leitura de arquivos de ativos para reduzir alocações. #12715

  • Adicionar rastreamento de eventos para restaurar para tornar possível medir o desempenho - #13274

  • Leia auditSources dos arquivos nuget.config - #13211

  • SourceRepository.GetResourceAsync deve ser cancelável. - #13234

  • CreateWalkAsync não deve ser recursivo - #13222

  • ProjectModel.HashObjectWriter.OnFlush está usando um hash SHA512 comparado a um hash mais barato que parece ser um excesso - #13214

  • Os metadados do pacote proprietário são uma matriz em JSON, mas uma cadeia de caracteres em Tipos de protocolo - #13186

  • Dotnet Package Search --Tabela de saída detalhada detalhada muito ampla - #13162

  • As chamadas em SetWarningProperties() têm sobrecarga de alocação devido à enumeração múltipla - #13151

  • O uso de ConcurrentStack na implementação do pool de objetos cria grandes quantidades de alocações - #13147

  • O IsBestVersion coloca os enumeradores de HashSet<T> em caixas, resultando em muita sobrecarga de alocação durante a restauração. - #13146

  • Descontinuar NuGet.exe list em favor de NuGet.exe search - #7912

  • [Pesquisa de Pacotes Dotnet] Uma exceção não tratada é lançada ao pesquisar com "--verbosity detailed" e "--format json" - #13300

  • dotnet package search falha no .NET 9 preview 2 todas as noites - #13286

  • Use o StringBuilderPool em vez de alocar um novo StringBuilder - #13285

  • Indique um tamanho apropriado para a Lista<T> - #13284

  • JsonTextWriter aloca um grande número de cadeias de caracteres - #13283

  • Uso de StringBuilder.Append() aloca ao anexar um int - #13282

  • Encapsulamento desnecessário de enumeradores de estrutura - #13281

  • Os objetos de processo devem ser descartados para que o finalizador não seja executado - #13280

  • Evite enumeradores de boxe para coleções - #13279

  • [.NET 9 Preview 3] no-op restauração não é mais um no-op - #13269

  • Reduzir alocações ao chamar IVsProjectAdpater.IsCapabilityMatchAsync - #13268

  • Consolide packages.config restaure implementações minimizando discrepâncias - #13233

  • Otimize o uso do LINQ para reduzir algumas alocações em AddMSBuildAssets - #13223

  • PackageSpecWriter está chamando Any em instâncias de ICollection<T>/IList<T> em vez de .Count - #13213

  • StringBuilder.Append(int) causa alocações desnecessárias - #13207

  • Os resultados da tarefa de cache podem fazer com que todas as continuações ocorram no mesmo thread - #13206

  • LibraryDependency cria uma coleção que está praticamente vazia - #13184

  • PackageSpecWriter deve manter a string original para as versões em vez de criar uma nova - #13183

  • SetCentralDependencies está chamando OrderBy sem especificar uma comparação, adotando por defeito uma comparação sensível à cultura - #13182

  • Os resultados da pesquisa no formato json da pesquisa de pacotes dotnet não devem incluir campos para os quais nenhum valor é fornecido - #13166

  • O resultado da pesquisa do pacote deve ser "totalDownloads" em vez de "total downloads" ao executar o comando "dotnet package search <Nome do Pacote> --format json" - #13165

  • [dotnet package search] a falha ao carregar um índice de serviço deve ser um erro e não um aviso. - #13163

  • O formato de pesquisa de pacote dotnet mostra a saída da Ajuda, além de um arquivo JSON - #13161

  • Cancelar a restauração estática baseada em gráfico não encerra o processo de restauração - #13140

  • Use string.Contains em vez de IEnumerable.Contains na análise de VersionRange - #13124

  • A restauração de gráfico estático não restaura packages.config única solução - #13109

  • A restauração do NuGet sempre tocou no arquivo project.assets.json, mesmo que nenhum conteúdo seja alterado quando ele precisa de mensagens de erro de log. - #13098

  • A auditoria no momento da restauração não deve lançar exceções nem falhar a operação - #13085

  • Obter o erro "Um item com a mesma chave já foi adicionado" ao restaurar. - #13067

  • Durante a rolagem no PM UI, já não são carregados pacotes adicionais. - #13063

  • A verificação do cache de restauração do NuGet já não usa o cache de existência de arquivos - #13058

  • Adicionar uma referência a um esproj de um projeto ASP.Net resulta em um erro NU1105 - #12986

  • RemoteDependencyWalker aloca muito devido ao fato de que é chamado recursivamente - #12748

  • [Erro]: Cancelar a restauração do msbuild é lento quando uma fonte inválida ou inacessível está configurada - #11813

  • Restauração: Clonagem em profundidade excessiva do ProjectSpec - #9041

Lista de confirmações nesta versão

Contribuições comunitárias

Obrigado a todos os colaboradores que ajudaram a tornar este lançamento do NuGet incrível!

  • Erarndt
    • 5659 Reduzir o encaixotamento ao enumerar listas
    • 5662 Use StringBuilder.AppendInt() em mais lugares para reduzir alocações ao anexar inteiros a um StringBuilder
    • 5663 Remover alocações da implementação do TextWriter.NewLine
    • 5665 Usar o StringBuilder em pool
    • 5661 Evite o encaixotamento do enumerador em PackageSpecificWarningProperties.AddRangeOfCodes e TransitiveNoWarnUtils.AddToSeen
    • 5660 Verifique se os objetos Process são descartados ao iniciar plug-ins de autenticação
    • 5664 Especifique o tamanho da lista em TopologicalSortUtility.CalculateRelationships
    • 5624 Mudar CreateNodeAsync para uma abordagem iterativa
    • 5584 Desenrolar a utilização do LINQ de forma a reduzir algumas alocações em AddMSBuildAssets
    • 5574 Desdobrar várias chamadas LINQ
    • 5593 Reduza ainda mais as alocações em CreateGraphNodeAsync
    • 5592 Evite enumeração múltipla ao escrever objetos Json
    • 5600 Evite a alocação de cadeia de caracteres intermediária causada pelo StringBuilder Append(i...
    • 5555 Expandir Linq em GetFlags
    • 5588 Evite encaixotar o Enumerador de HashSet em IsBestVersion
    • 5589 Atualize a implementação do pool para usar uma pilha com um bloqueio para evitar...
    • 5568 Alterar ResolvedDependencyKey para uma estrutura
    • 5553 Evite algumas alocações em GetCompatibilityData
    • 5554 Alterar de Tuple para ValueTuple nas chaves do dicionário
    • 5552 Evite criar a classe de captura para chamadas para WithExtension
    • 5556 Mudar de ConcurrentDictionary para Dictionary com bloqueio para evitar rep...
    • 5551 Use string.Contains em vez de IEnumerable.Contains
    • 5550 Evitar a boxe de o enumerador da Lista<T>
  • GenelleM
    • 5655 Adicionar algoritmo de hash não criptográfico de 64 bits destinado à computação de unicidade dgspec
    • 5629 Substituir chamadas para Any() em ICollection no PackageSpecWriter por Count > 0 Issue #13213
    • 5619 Reduz algum tempo de utilização da CPU em SetCentralDependencies
  • NikolaMilosavljevic
    • 5673 Habilitar publicação no VMR
    • 5625 Elimine o pacote pré-construído System.CommandLine
  • Brianrob
    • 5650 Adicionar instrumentação de restauração