Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Notas de Lançamento do NuGet 2.6.1 para o WebMatrix | Notas de Lançamento do NuGet 2.7.1
O NuGet 2.7 foi lançado em 22 de agosto de 2013.
Agradecimentos
Gostaríamos de agradecer aos seguintes colaboradores externos por suas contribuições significativas para o NuGet 2.7:
-
[Mike Roth](http://www.codeplex.com/site/users/view/mxrss)(@mxrss)- Mostrar a URL da licença ao listar pacotes e a verbosidade é detalhada.
-
[Adam Ralph](http://www.codeplex.com/site/users/view/adamralph)(@adamralph)-
[#1956](http://nuget.codeplex.com/workitem/1956)- Adicione o atributo developmentDependency apackages.confige utilize-o no comando pack para incluir apenas pacotes de tempo de execução
-
-
[Rafael Nicoletti](http://www.codeplex.com/site/users/view/tkrafael)(@tkrafael)- Evite a duplicação da chave de propriedades no comando nuget.exe pack.
-
[Ben Phegan](http://www.codeplex.com/site/users/view/benphegan)(@BenPhegan)-
[#2610](http://nuget.codeplex.com/workitem/2610)- Aumentar o tamanho do cache da máquina para 200.
-
-
[Slava Trenogin](http://www.codeplex.com/site/users/view/derigel)(@derigel)-
[#3217](http://nuget.codeplex.com/workitem/3217)- Corrigir caixa de diálogo NuGet mostrando atualizações na guia errada - Fix Project.TargetFramework pode ser nulo no ProjectManager
-
[#3248](http://nuget.codeplex.com/workitem/3248)- Corrigir o SharedPackageRepository para que o FindPackage/FindPackagesById falhe quando o packageId não existir
-
-
[Kevin Boyle](http://www.codeplex.com/site/users/view/KevinBoyleRG)(@kevfromireland)-
[#3234](http://nuget.codeplex.com/workitem/3234)- Habilitar o suporte para o projeto Nomad
-
-
[Corin Blaikie](http://www.codeplex.com/site/users/view/corinblaikie)(@corinblaikie)-
[#3252](http://nuget.codeplex.com/workitem/3252)- O comando Fix push falha com o código de saída 0 quando o arquivo não existe.
-
[Martin Veselý](http://www.codeplex.com/site/users/view/veselkamartin)-
[#3226](http://nuget.codeplex.com/workitem/3226)- Corrigir bug com Add-BindingRedirect comando quando um projeto faz referência a um projeto de banco de dados.
-
-
[Miroslav Bajtos](http://www.codeplex.com/site/users/view/miroslavbajtos)(@bajtos)-
[#2891](http://nuget.codeplex.com/workitem/2891)- Correção de bug de nuget.pack na análise de curinga incorretamente no atributo 'exclude'.
-
-
[Justin Dearing](http://www.codeplex.com/site/users/view/zippy1981)(@zippy1981)-
[#3307](http://nuget.codeplex.com/workitem/3307)- Correção do bugNuGet.targetsque não passa $(Plataforma) para nuget.exe ao restaurar pacotes.
-
[Brian Federici](http://www.codeplex.com/site/users/view/benerdin)-
[#3294](http://nuget.codeplex.com/workitem/3294)- Corrigir bug em nuget.exe comando de pacote que permitiria adicionar arquivos com o mesmo nome, mas caixa diferente, eventualmente causando a exceção "Item já existe".
-
-
[Daniel Cazzulino](http://www.codeplex.com/site/users/view/dcazzulino)(@kzu)-
[#2990](http://nuget.codeplex.com/workitem/2990)- Adicione a propriedade Version à classe NetPortableProfile.
-
[David Simner](https://www.codeplex.com/site/users/view/DavidSimner)-
[#3460](https://nuget.codeplex.com/workitem/3460)- Corrigir o erro NullReferenceException se o valor de requireApiKey for verdadeiro, mas o cabeçalho X-NUGET-APIKEY não estiver presente
-
-
[Michael Friis](https://www.codeplex.com/site/users/view/friism)(@friism)-
[#3278](https://nuget.codeplex.com/workitem/3278)- Corrige o ficheiro de targets do NuGet.Build para que funcione corretamente no MonoDevelop
-
-
[Pranav Krishnamoorthy](https://www.codeplex.com/site/users/view/pranavkm)(@pranav_km)- Melhore o desempenho do comando Restore aumentando a paralelização
Características notáveis no lançamento
Restauração de pacote por padrão (com consentimento implícito)
O NuGet 2.7 introduz uma nova abordagem para a restauração de pacotes e também supera um grande obstáculo: o consentimento de restauração de pacotes agora está ativado por padrão! A combinação da nova abordagem e do consentimento implícito simplificará drasticamente os cenários de restauração de pacotes.
Consentimento implícito
Com as versões 2.0, 2.1, 2.2, 2.5 e 2.6 do NuGet, os usuários precisavam permitir explicitamente que o NuGet baixasse pacotes ausentes durante a compilação. Se esse consentimento não tivesse sido dado explicitamente, as soluções que tivessem habilitado a restauração de pacotes falhariam na compilação até que o usuário tivesse concedido o consentimento.
A partir do NuGet 2.7, o consentimento de restauração do pacote está ATIVADO por padrão, permitindo que os usuários desativem explicitamente a restauração do pacote, se desejado, usando a caixa de seleção nas configurações do NuGet no Visual Studio. Essa alteração para consentimento implícito afeta o NuGet nos seguintes ambientes:
- Visualização do Visual Studio 2013
- Visual Studio 2012
- Visual Studio 2010
- nuget.exe Utilitário de Linha de Comando
Restauração automática de pacotes no Visual Studio
A partir do NuGet 2.7, o NuGet baixará automaticamente os pacotes ausentes durante a compilação no Visual Studio, mesmo que a restauração de pacotes não tenha sido explicitamente habilitada para a solução. Esta restauração automática de pacotes ocorre no Visual Studio quando o utilizador compila um projeto ou uma solução, mas antes de o MSBuild ser chamado. Isso traz alguns benefícios significativos:
- Não há mais necessidade de usar o gesto "Ativar restauração de pacote NuGet" em sua solução
- Os projetos não precisam ser modificados e o NuGet não fará alterações no seu projeto para garantir que a restauração de pacotes esteja habilitada
- Todos os pacotes NuGet, incluindo aqueles que incluíam importações do MSBuild para arquivos props/targets, serão restaurados antes que o MSBuild seja invocado, garantindo que esses props/targets sejam reconhecidos corretamente durante a compilação
Para usar a Restauração Automática de Pacotes no Visual Studio, você só precisa executar uma (in)ação:
- Não faça check-in na sua
packagespasta
Há várias maneiras de omitir sua packages pasta do controle do código-fonte. Para obter mais informações, consulte o tópico Pacotes e controle do código-fonte .
Embora todos os utilizadores estejam implicitamente com o consentimento ativado para a Restauração Automática de Pacotes, pode facilmente desativar esta opção através das configurações do Gerenciador de Pacotes no Visual Studio.
Restauração de pacote simplificada a partir do Command-Line
O NuGet 2.7 apresenta um novo recurso para nuget.exe: nuget.exe restore
Este novo comando Restaurar permite restaurar facilmente todos os pacotes de uma solução com um único comando, aceitando um arquivo ou pasta de solução como argumento. Além disso, esse argumento está implícito quando há apenas uma única solução na pasta atual. Isso significa que todas as seguintes funcionalidades funcionam numa pasta que contém um único arquivo de solução (MySolution.sln):
- nuget.exe restaurar MySolution.sln
- nuget.exe restaurar.
- nuget.exe restaurar
O comando Restore abrirá o arquivo de solução e localizará todos os projetos dentro da solução. A partir daí, ele encontrará os packages.config arquivos para cada um dos projetos e restaurará todos os pacotes encontrados. Ele também restaura pacotes ao nível da solução encontrados no .nuget\packages.config ficheiro. Mais informações sobre o novo comando Restaurar podem ser encontradas na Referência da Linha de Comando.
O novo processo de restauração de pacotes
Estamos entusiasmados com essas alterações na Restauração de Pacotes, pois ela introduz um novo fluxo de trabalho. Se você quiser omitir seus pacotes do controle do código-fonte, simplesmente não confirme a packages pasta. Os usuários do Visual Studio que abrirem e compilarem a solução verão os pacotes restaurados automaticamente. Para compilações de linha de comando, basta invocar nuget.exe restore antes de invocar msbuild. Você não precisa mais se lembrar de usar o gesto "Ativar restauração de pacote NuGet" em sua solução, e não precisaremos mais modificar seus projetos para alterar a compilação. E isso também produz uma experiência muito melhor para pacotes que incluem importações do MSBuild, especialmente para importações adicionadas por meio do recurso recente do NuGet para importar automaticamente arquivos props/targets da pasta \build.
Além do trabalho que temos feito, também estamos trabalhando com alguns parceiros importantes para completar essa nova abordagem. Ainda não temos cronogramas concretos para nenhum deles, mas cada parceiro está tão animado quanto nós com a nova abordagem.
- Team Foundation Service - Eles estão trabalhando para integrar a chamada para
nuget.exe restorenos cenários de compilação padrão. - Sites do Windows Azure - Eles estão trabalhando para permitir que você envie seu projeto para o Azure e tenham
nuget.exe restorechamado antes que seu site seja criado. - TeamCity - Eles estão atualizando seu plug-in NuGet Installer para TeamCity 8.x
- AppHarbor - Eles estão a trabalhar para permitir que o utilizador faça push do seu repositório para AppHarbor e tenha
nuget.exe restorechamado antes que a sua solução seja construída.
Com cada um dos parceiros acima, eles usariam sua própria cópia de nuget.exe e você não precisaria carregar nuget.exe em sua solução.
Problemas conhecidos
Houve dois problemas conhecidos com nuget.exe restore no lançamento inicial da versão 2.7, mas eles foram corrigidos em 6 de setembro de 2013 com uma atualização para o pacote NuGet.CommandLine. Esta atualização também está disponível no [NuGet 2.7 download page](https://nuget.codeplex.com/releases/view/107605) CodePlex. Executar nuget.exe update -self atualizará para a versão mais recente.
Os fixos foram:
[New package restore doesn't work on Mono when using SLN file](https://nuget.codeplex.com/workitem/3596)[New package restore doesn't work with Wix projects](https://nuget.codeplex.com/workitem/3598)
Há também um problema conhecido com o novo fluxo de trabalho de restauração de pacotes, em que [Automatic Package Restore does not work for projects under a solution folder](https://nuget.codeplex.com/workitem/3625). Esse problema foi corrigido no NuGet 2.7.1.
Redirecionamento de Projeto e Erros/Avisos de Compilação de Atualização
Muitas vezes, depois de redirecionar ou atualizar seu projeto, você descobre que alguns pacotes NuGet não estão funcionando corretamente. Infelizmente, não há indicação disso e, em seguida, não há orientação sobre como lidar com isso. Com o NuGet 2.7, agora usamos alguns eventos do Visual Studio para reconhecer quando você redirecionou ou atualizou seu projeto de uma forma que afeta seus pacotes NuGet instalados.
Se detetarmos que algum dos seus pacotes foi afetado pelo redirecionamento ou atualização, produziremos erros de compilação imediatos para informá-lo. Além do erro de compilação imediato, também mantemos um requireReinstallation="true" sinalizador no seu packages.config ficheiro relativo a todos os pacotes afetados pelo redirecionamento, e cada compilação subsequente no Visual Studio emitirá avisos de compilação para esses pacotes.
Embora o NuGet não possa tomar medidas automáticas para reinstalar pacotes afetados, esperamos que esta indicação e aviso o ajudem a descobrir quando você precisa reinstalar pacotes. Também estamos trabalhando na documentação de orientação de reinstalação de pacotes para a qual essas mensagens de erro direcionam você.
Padrões de configuração do NuGet
Muitas empresas estão usando o NuGet internamente, mas têm tido dificuldade em orientar seus desenvolvedores a usar fontes de pacotes internos em vez de nuget.org. O NuGet 2.7 introduz um recurso de Padrões de Configuração que permite que padrões em toda a máquina sejam especificados para:
- Fontes de pacotes ativadas
- Fontes de pacotes registradas, mas desabilitadas
- A fonte padrão de push do nuget.exe
Cada um deles agora pode ser configurado dentro de um arquivo localizado em %ProgramData%\NuGet\NuGetDefaults.Config. Se este ficheiro de configuração especificar origens de pacotes, a origem de pacotes predefinida do nuget.org não será registada automaticamente, e as que estão em NuGetDefaults.Config serão registadas.
Embora não seja necessário usar esse recurso, esperamos que as empresas implantem NuGetDefaults.Config arquivos usando a Diretiva de Grupo.
Observe que esse recurso nunca fará com que uma fonte de pacote seja removida das configurações do NuGet de um desenvolvedor. Isso significa que, se o desenvolvedor já tiver usado o NuGet e, portanto, tiver a fonte do pacote nuget.org registrada, ela não será removida após a criação de um NuGetDefaults.Config arquivo.
Consulte Padrões de configuração do NuGet para obter mais informações sobre esse recurso.
Renomeação da origem do pacote padrão
O NuGet sempre registou uma fonte de pacotes padrão chamada "fonte oficial de pacotes NuGet" que aponta para nuget.org. Esse nome era prolixo e também não especificava para onde estava realmente a apontar. Para resolver esses dois problemas, renomeamos essa fonte de pacote para simplesmente "nuget.org" na interface do usuário. O URL da fonte do pacote também foi alterado para incluir o prefixo "www." Depois de usar o NuGet 2.7, sua "fonte oficial do pacote NuGet" existente será atualizada automaticamente para "nuget.org" como seu nome e "https://www.nuget.org/api/v2/" como seu URL.
Melhorias de desempenho
Fizemos algumas melhorias de desempenho no 2.7, o que resultará em menor espaço de memória, menor uso de disco e instalação de pacotes mais rápida. Também realizámos consultas mais inteligentes aos feeds baseados em OData, o que reduzirá o volume de dados transferidos.
Novas APIs de extensibilidade
Adicionamos algumas novas APIs aos nossos serviços de extensibilidade para preencher a lacuna de funcionalidades ausentes em versões anteriores.
IVsPackageInstallerServices
// Checks if a NuGet package with the specified Id and version is installed in the specified project.
bool IsPackageInstalledEx(Project project, string id, string versionString);
// Get the list of NuGet packages installed in the specified project.
IEnumerable<IVsPackageMetadata> GetInstalledPackages(Project project);
IVsPackageInstaller
// Installs one or more packages that exist on disk in a folder defined in the registry.
void InstallPackagesFromRegistryRepository(string keyName, bool isPreUnzipped, bool skipAssemblyReferences, Project project, IDictionary<string, string> packageVersions);
// Installs one or more packages that are embedded in a Visual Studio Extension Package.
void InstallPackagesFromVSExtensionRepository(string extensionId, bool isPreUnzipped, bool skipAssemblyReferences, Project project, IDictionary<string, string> packageVersions);
Dependências Exclusivas de Desenvolvimento
Esse recurso foi contribuído por Adam Ralph e permite que os autores de pacotes declarem dependências que foram usadas apenas no momento do desenvolvimento e não exigem dependências de pacote. Ao adicionar um developmentDependency="true" atributo a um pacote no packages.config, nuget.exe pack não incluirá mais esse pacote como uma dependência.
Suporte removido para Visual Studio 2010 Express para Windows Phone
O novo modelo de restauração de pacote na versão 2.7 é implementado por um novo VSPackage que é diferente do VSPackage NuGet principal. Devido a um problema técnico, esse novo VSPackage não funciona corretamente no Visual Studio 2010 Express para Windows Phone SKU como nós compartilhamos a mesma base de código com outros SKUs do Visual Studio suportados. Portanto, começando com o NuGet 2.7, estamos descartando o suporte para o Visual Studio 2010 Express para Windows Phone da extensão publicada. O suporte para o Visual Studio 2010 Express for Web ainda está incluído na extensão principal publicada na Galeria de Extensões do Visual Studio.
Como não temos certeza de quantos desenvolvedores ainda estão usando o NuGet nessa versão/edição do Visual Studio, estamos publicando uma extensão separada do Visual Studio especificamente para esses usuários e publicando-a no CodePlex (em vez da Galeria de Extensões do Visual Studio). Não planejamos continuar a manter essa extensão, mas se isso afetar você, informe-nos registrando um problema no CodePlex.
Para baixar o Gerenciador de Pacotes NuGet (para Visual Studio 2010 Express para Windows Phone), visite a [NuGet 2.7 Downloads](https://nuget.codeplex.com/releases/view/107605) página.
Correções de Erros
Além desses recursos, esta versão do NuGet também inclui muitas outras correções de bugs. Houve 97 problemas totais abordados no lançamento. Para obter uma lista completa dos itens de trabalho corrigidos no NuGet 2.7, veja [NuGet Issue Tracker for this release](https://nuget.codeplex.com/workitem/list/advanced?release=NuGet%202.7&status=all).