Ler em inglês

Compartilhar via


Notas sobre a versão do NuGet 2.0

Notas sobre a versão do NuGet 1.8 | Notas sobre a versão do Nuget 2.1

O NuGet 2.0 foi lançado em 19 de junho de 2012.

Problema de instalação conhecido

Se você estiver executando o VS 2010 SP1, poderá encontrar um erro de instalação ao tentar fazer upgrade no NuGet se tiver uma versão mais antiga instalada.

Outra opção é usar a solução alternativa de simplesmente desinstalar o NuGet e, em seguida, instalá-lo da Galeria de Extensões do VS. Consulte https://support.microsoft.com/kb/2581019 para obter mais informações ou vá diretamente para o hotfix do VS.

Nota: se o Visual Studio não permitir que você desinstale a extensão (o botão Desinstalar está desabilitado), você provavelmente precisará reiniciar o Visual Studio usando "Executar como administrador".

Conforme descrito neste post sobre o consentimento de restauração de pacotes, o NuGet 2.0 agora exigirá que seja dado consentimento para permitir que a restauração de pacotes fique online e para baixar pacotes. Verifique se você forneceu consentimento por meio da caixa de diálogo de configuração do gerenciador de pacotes ou da variável de ambiente EnableNuGetPackageRestore.

Agrupar dependências por estruturas de destino

A partir da versão 2.0, as dependências do pacote podem variar com base no perfil da estrutura do projeto de destino. Isso é feito usando um esquema .nuspec atualizado. Um elemento <dependencies> contém um conjunto de elementos <group>. Cada grupo tem um contém um zero ou mais elementos <dependency> e um atributo targetFramework. Todas as dependências dentro de um grupo são instaladas juntas quando a estrutura de destino é compatível com o perfil da estrutura do projeto. Por exemplo:

<dependencies>
    <group>
        <dependency id="RouteMagic" version="1.1.0" />
    </group>

    <group targetFramework="net40">
        <dependency id="jQuery" />
        <dependency id="WebActivator" />
    </group>

    <group targetFramework="sl30">
    </group>
</dependencies>

Observe que um grupo pode conter zero dependências. No exemplo acima, se o pacote for instalado em um projeto destinado ao Silverlight 3.0 ou posterior, nenhuma dependência será instalada. Se o pacote for instalado em um projeto destinado ao .NET 4.0 ou posterior, duas dependências, jQuery e WebActivator, serão instaladas. Se o pacote for instalado em um projeto destinado a uma versão anterior a essas 2 estruturas, ou qualquer outra estrutura, o RouteMagic 1.1.0 será instalado. Não há herança entre os grupos. Se a estrutura de destino de um projeto corresponder ao atributo targetFramework de um grupo, somente as dependências dentro desse grupo serão instaladas.

Um pacote pode especificar dependências de pacote em um dos dois formatos: o formato antigo de uma lista simples de elementos ou grupos <dependency>. Se o formato <group> for usado, o pacote não poderá ser instalado em versões do NuGet anteriores à 2.0.

Observe que não é permitido misturar os dois formatos. Por exemplo, o trecho a seguir é inválido e será rejeitado pelo NuGet.

<dependencies>
    <dependency id="jQuery" />
    <dependency id="WebActivator" />

    <group>
        <dependency id="RouteMagic" version="1.1.0" />
    </group>
</dependencies>

Agrupar arquivos de conteúdo e scripts do PowerShell por estrutura de destino

Além das referências de assembly, os arquivos de conteúdo e os scripts do PowerShell também podem ser agrupados por estrutura de destino. A mesma estrutura de pastas encontrada na pasta lib para especificar a estrutura de destino agora pode ser aplicada da mesma maneira às pastas content e tools. Por exemplo:

\content
    \net11
        \MyContent.txt
    \net20
        \MyContent20.txt
    \net40
    \sl40
        \MySilverlightContent.html

\tools
    \init.ps1
    \net40
        \install.ps1
        \uninstall.ps1
    \sl40
        \install.ps1
        \uninstall.ps1

Observe: Como init.ps1 é executado no nível da solução e não depende do projeto, ele precisa ser colocado diretamente na pasta tools. Se colocado dentro de uma pasta específica da estrutura, ele será ignorado.

Além disso, um novo recurso no NuGet 2.0 é que uma pasta de estrutura pode estar vazia, nesse caso, o NuGet não adicionará referências de assembly, adicionará arquivos de conteúdo ou executará scripts do PowerShell para a versão específica da estrutura. No exemplo acima, a pasta content\net40 está vazia.

Melhor desempenho de conclusão de guias

O recurso de conclusão de tabulação no Console do Gerenciador de Pacotes NuGet foi atualizado para melhorar significativamente o desempenho. Haverá muito menos atraso a partir do momento em que a tecla tab for pressionada até que a lista suspensa de sugestões apareça.

Correções de bugs

O NuGet 2.0 inclui muitas correções de bugs com ênfase no consentimento e no desempenho da restauração do pacote. Para obter uma lista completa dos itens de trabalho corrigidos no NuGet 2.0, consulte o [NuGet Issue Tracker for this release](http://nuget.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=NuGet%202.0&assignedTo=All&component=All&sortField=Votes&sortDirection=Descending&page=0).