Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Notas de versão do NuGet 2.7.2 | Notas de versão do NuGet 2.8.1
O NuGet 2.8 foi lançado em 29 de janeiro de 2014.
Reconhecimento
-
[Llewellyn Pritchard](https://www.codeplex.com/site/users/view/leppie)(@leppie)-
[#3466](https://nuget.codeplex.com/workitem/3466)- Ao empacotar pacotes, verificando a ID dos pacotes de dependência.
-
-
[Maarten Balliauw](https://www.codeplex.com/site/users/view/maartenba)(@maartenballiauw)-
[#2379](https://nuget.codeplex.com/workitem/2379)- Remova o sufixo $metadata ao persistir as credenciais do feed.
-
-
[Filip De Vos](https://www.codeplex.com/site/users/view/FilipDeVos)(@foxtricks)-
[#3538](http://nuget.codeplex.com/workitem/3538)– Suporte para especificar o arquivo de projeto no comando de atualização do nuget.exe.
-
[Juan Gonzalez](https://www.codeplex.com/site/users/view/jjgonzalez)-
[#3536](http://nuget.codeplex.com/workitem/3536)- Marcadores de substituição não passados com -IncludeReferencedProjects.
-
-
[David Poole](https://www.codeplex.com/site/users/view/Sarkie)(@Sarkie_Dave)-
[#3677](http://nuget.codeplex.com/workitem/3677)- Correção de nuget.push lançando OutOfMemoryException ao fazer o push de um pacote grande.
-
[Wouter Ouwens](https://www.codeplex.com/site/users/view/Despotes)-
[#3666](http://nuget.codeplex.com/workitem/3666)- Corrija o caminho de destino incorreto quando o projeto faz referência a outro projeto da CLI/C++.
-
-
[Adam Ralph](http://www.codeplex.com/site/users/view/adamralph)(@adamralph)-
[#3639](https://nuget.codeplex.com/workitem/3639)– Permitir que os pacotes sejam instalados como dependências de desenvolvimento por padrão
-
-
[David Fowler](https://www.codeplex.com/site/users/view/dfowler)(@davidfowl)-
[#3717](https://nuget.codeplex.com/workitem/3717)– Remover atualizações implícitas para a versão mais recente do patch
-
[Gregory Vandenbrouck](https://www.codeplex.com/site/users/view/vdbg)- Várias correções de bug e melhorias para o NuGet.Server, o comando espelho nuget.exe e outros.
- Este trabalho foi feito ao longo de vários meses, com Gregory trabalhando conosco no momento certo para se integrar ao mestre para 2.8.
Resolução de correções para dependências
Ao resolver dependências de pacote, o NuGet historicamente implementou uma estratégia de seleção da versão mais baixa do pacote principal e secundária que satisfaz as dependências do pacote. Ao contrário das versões principal e secundária, no entanto, a versão do patch sempre foi definida como a versão mais alta. Embora o comportamento tenha sido bem intencionado, ele criou uma falta de determinismo para instalar pacotes com dependências. Considere o exemplo a seguir:
PackageA@1.0.0 -[ >=1.0.0 ]-> PackageB@1.0.0
Developer1 installs PackageA@1.0.0: installed PackageA@1.0.0 and PackageB@1.0.0
PackageB@1.0.1 is published
Developer2 installs PackageA@1.0.0: installed PackageA@1.0.0 and PackageB@1.0.1
Neste exemplo, embora o Developer1 e o Developer2 tenham instalado PackageA@1.0.0, cada um acabou com uma versão diferente do PackageB. O NuGet 2.8 altera esse comportamento padrão de modo que o comportamento de resolução de dependência para versões de patch seja consistente com o comportamento de versões principais e secundárias. No exemplo acima, PackageB@1.0.0 seria instalado como resultado da instalação do PackageA@1.0.0, independentemente da versão mais recente do patch.
-DependencyVersion Alternador
Embora o NuGet 2.8 altere o comportamento padrão para resolver dependências, ele também adiciona um controle mais preciso sobre o processo de resolução de dependência por meio da opção -DependencyVersion no console do gerenciador de pacotes. A opção permite resolver dependências para a versão mais baixa possível (comportamento padrão), a versão mais alta possível ou a versão menor ou de patch mais alta. Esta opção funciona apenas com o comando install-package no PowerShell.
Atributo DependencyVersion
Além da opção -DependencyVersion detalhada acima, o NuGet também permitiu a capacidade de definir um novo atributo no arquivo Nuget.Config definindo qual é o valor padrão, se a opção -DependencyVersion não for especificada em uma invocação do pacote de instalação. Esse valor também será respeitado pela caixa de diálogo Gerenciador de Pacotes NuGet para qualquer operação de instalação de pacotes. Para definir esse valor, adicione o atributo abaixo ao arquivo Nuget.Config:
<config>
<add key="dependencyversion" value="Highest" />
</config>
Visualizar operações do NuGet com -whatif
Alguns pacotes NuGet podem ter grafos de dependência profunda e, como tal, podem ser úteis durante uma operação de instalação, desinstalação ou atualização para ver primeiro o que acontecerá. O NuGet 2.8 adiciona o comutador padrão -whatif do PowerShell aos comandos install-package, uninstall-package e update-package para permitir a visualização de todo o conjunto de pacotes aos quais o comando será aplicado. Por exemplo, a execução install-package Microsoft.AspNet.WebApi -whatif em um aplicativo Web ASP.NET vazio produz o seguinte.
PM> install-package Microsoft.AspNet.WebApi -whatif
Attempting to resolve dependency 'Microsoft.AspNet.WebApi.WebHost (≥ 5.0.0)'.
Attempting to resolve dependency 'Microsoft.AspNet.WebApi.Core (≥ 5.0.0)'.
Attempting to resolve dependency 'Microsoft.AspNet.WebApi.Client (≥ 5.0.0)'.
Attempting to resolve dependency 'Newtonsoft.Json (≥ 4.5.11)'.
Install Newtonsoft.Json 4.5.11
Install Microsoft.AspNet.WebApi.Client 5.0.0
Install Microsoft.AspNet.WebApi.Core 5.0.0
Install Microsoft.AspNet.WebApi.WebHost 5.0.0
Install Microsoft.AspNet.WebApi 5.0.0
Pacote de downgrade
Não é incomum instalar uma versão de pré-lançamento de um pacote para investigar novos recursos e, em seguida, decidir reverter para a última versão estável. Antes do NuGet 2.8, esse era um processo de várias etapas de desinstalação do pacote de pré-lançamento e suas dependências e, em seguida, instalação da versão anterior. No entanto, com o NuGet 2.8, o comando de atualização de pacote agora reverterá toda a estrutura do pacote (ou seja, a árvore de dependência do pacote) para a versão anterior.
Dependências de desenvolvimento
Muitos tipos diferentes de recursos podem ser entregues como pacotes NuGet, incluindo ferramentas usadas para otimizar o processo de desenvolvimento. Esses componentes, embora possam ser fundamentais no desenvolvimento de um novo pacote, não devem ser considerados uma dependência do novo pacote quando ele for publicado posteriormente. O NuGet 2.8 permite que um pacote se identifique no arquivo .nuspec como uma dependência de desenvolvimento. Quando instalado, esses metadados também serão adicionados ao packages.config arquivo do projeto no qual o pacote foi instalado. Quando esse packages.config arquivo for analisado posteriormente para dependências do NuGet durante nuget.exe pack, ele excluirá essas dependências marcadas como dependências de desenvolvimento.
Arquivos de packages.config individuais para plataformas diferentes
Ao desenvolver aplicativos para várias plataformas de destino, é comum ter arquivos de projeto diferentes para cada um dos respectivos ambientes de build. Também é comum consumir pacotes NuGet diferentes em diferentes arquivos de projeto, pois os pacotes têm diferentes níveis de suporte para diferentes plataformas. O NuGet 2.8 fornece suporte aprimorado para esse cenário criando arquivos diferentes packages.config para diferentes arquivos de projeto específicos da plataforma.
Fallback para Cache Local
Embora os pacotes NuGet normalmente sejam consumidos de uma galeria remota, como a galeria do NuGet usando uma conexão de rede, há muitos cenários em que o cliente não está conectado. Sem uma conexão de rede, o cliente NuGet não conseguiu instalar pacotes com êxito, mesmo quando esses pacotes já estavam no computador do cliente no cache NuGet local. O NuGet 2.8 adiciona um mecanismo de retrocesso de cache automático ao console do gerenciador de pacotes. Por exemplo, ao desconectar o adaptador de rede e instalar o jQuery, o console mostra o seguinte:
PM> Install-Package jquery
The source at nuget.org [https://www.nuget.org/api/v2/] is unreachable. Falling back to NuGet Local Cache at C:\Users\me\AppData\Local\NuGet\Cache
Installing 'jQuery 2.0.3'.
Successfully installed 'jQuery 2.0.3'.
Adding 'jQuery 2.0.3' to WebApplication18.
Successfully added 'jQuery 2.0.3' to WebApplication18.
O recurso de fallback de cache não requer argumentos de comando específicos. Além disso, o fallback de cache atualmente funciona apenas no console do gerenciador de pacotes – esse comportamento não funciona na janela de diálogo do gerenciador de pacotes.
Atualizações do cliente WebMatrix NuGet
Juntamente com o NuGet 2.8, a extensão NuGet para WebMatrix também foi atualizada para incluir muitos dos principais recursos entregues com o NuGet 2.5. Os novos recursos incluem aqueles como "Atualizar Tudo", "Versão Mínima do NuGet" e permitindo sobrescrever arquivos de conteúdo.
Para atualizar sua extensão do Gerenciador de Pacotes NuGet no WebMatrix 3:
- Abrir o WebMatrix 3
- Clique no ícone de Extensões na faixa de opções
- Selecione a guia Atualizações
- Clique para atualizar o Gerenciador de Pacotes NuGet para 2.5.0
- Fechar e reiniciar o WebMatrix 3
Esta é a primeira versão da equipe do NuGet da extensão do Gerenciador de Pacotes NuGet para WebMatrix. O código foi recentemente contribuido pela Microsoft para o projeto NuGet de software livre. Anteriormente, a integração do NuGet era integrada ao WebMatrix e não podia ser atualizada fora da banda do WebMatrix. Agora temos a capacidade de atualizá-lo ainda mais junto com o restante das ferramentas de cliente do NuGet.
Correções
Uma das principais correções de bugs feitas foi a melhoria de desempenho no comando update-package -reinstall.
Além desses recursos e da correção de desempenho mencionada acima, essa versão do NuGet também inclui muitas outras correções de bug. Houve 181 problemas totais resolvidos na versão. Para obter uma lista completa dos itens de trabalho corrigidos no NuGet 2.8, visualize o [NuGet Issue Tracker for this release](https://nuget.codeplex.com/workitem/list/advanced?release=NuGet%202.8&status=all).