Partilhar via


Problemas conhecidos com o NuGet

Estes são os problemas conhecidos mais comuns com o NuGet que são repetidamente relatados. Se você estiver tendo problemas para instalar o NuGet ou gerenciar pacotes, dê uma olhada nesses problemas conhecidos e suas resoluções.

Observação

A partir do NuGet 4.0, problemas conhecidos fazem parte das respetivas notas de versão.

As configurações de auditoria do NuGet podem não ser aplicadas corretamente para projetos que usam packages.config no Visual Studio 17.10

O suporte à Auditoria NuGet foi adicionado para packages.config projetos a partir do NuGet 6.10 e do Visual Studio 17.10. Informações sobre como configurar o NuGet Audit podem ser encontradas em nossos documentos sobre pacotes de auditoria.

Problema:

Se dois ou mais projetos que usam packages.config na solução usarem o mesmo nome de projeto, a Auditoria NuGet escolherá um e usará as mesmas configurações de Auditoria NuGet para ambos os projetos.

O problema de rastreamento para remover essa limitação está disponível no GitHub.

Solução alternativa:

Se todos os projetos com o mesmo nome usarem os mesmos valores de configuração, não haverá diferença funcional quando o NuGet restaurar um projeto usando a configuração de um projeto diferente.

NuGet.exe não tem essa limitação, então você pode baixar NuGet.exe e executar NuGet.exe restore em sua solução para ver se os avisos de Auditoria NuGet são diferentes na linha de comando do que o Visual Studio está relatando.

Se for viável renomear os projetos para que eles tenham nomes de projetos diferentes, esse cenário de problema não será encontrado.

Problemas de autenticação com feeds NuGet no VSTS com nuget.exe v3.4.3

Problema:

Quando usamos o seguinte comando para armazenar as credenciais, acabamos criptografando duas vezes o Token de Acesso Pessoal.

$PAT = "O seu token de acesso pessoal" $Feed = "A sua url" .\nuget.exe sources add -Name Test -Source $Feed -UserName $UserName -Password $PAT

Solução alternativa:

Armazene senhas em texto não criptografado usando a opção -StorePasswordInClearText .

Erro ao instalar pacotes com o NuGet 3.4, 3.4.1

Problema:

No NuGet 3.4 e 3.4.1, ao usar o suplemento NuGet, nenhuma fonte é relatada como disponível e você não pode adicionar novas fontes na janela de configuração. O resultado é semelhante à imagem abaixo:

Configuração do NuGet sem fontes

O NuGet.Config ficheiro na sua %AppData%\NuGet\ pasta (Windows) ou ~/.nuget/ (Mac/Linux) foi acidentalmente esvaziado. Para corrigir isso: feche o Visual Studio (no Windows, se aplicável), exclua o NuGet.Config arquivo e tente a operação novamente. O NuGet gerou um novo NuGet.Config e você deve ser capaz de continuar.

Erro ao instalar pacotes com o NuGet 2.7

Problema:

No NuGet 2.7 ou superior, quando o utilizador tenta instalar qualquer pacote que contém referências de assemblagem, pode receber a seguinte mensagem de erro: "Input string was not in a correct format.", como abaixo.

install-package log4net
    Installing 'log4net 2.0.0'.
    Successfully installed 'log4net 2.0.0'.
    Adding 'log4net 2.0.0' to Tyson.OperatorUpload.
    Install failed. Rolling back...
    install-package : Input string was not in a correct format.
    At line:1 char:1
        install-package log4net
        ~~~~~~~~~~~~~~~~~~~~~~~
        CategoryInfo : NotSpecified: (:) [Install-Package], FormatException
        FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand

Isso é causado pelo fato de a biblioteca de tipos para o VSLangProj.dll componente COM não estar registrada no seu sistema. Isso pode acontecer, por exemplo, quando você tem duas versões do Visual Studio instaladas lado a lado e, em seguida, desinstalar a versão mais antiga. Fazer isso pode inadvertidamente cancelar o registro da biblioteca COM acima.

Solução::

Execute este comando a partir de um prompt elevado para registrar novamente a biblioteca de tipos para VSLangProj.dll

regsvr32 "C:\Program Files (x86)\Common Files\microsoft shared\MSEnv\VsLangproj.olb"

Se o comando falhar, verifique se o arquivo existe nesse local.

Para obter mais informações sobre esse erro, consulte este [work item](https://nuget.codeplex.com/workitem/3609 "Work item 3609").

Falha de compilação após a atualização do pacote no VS 2012

O problema: você está usando o VS 2012 RTM. Ao atualizar pacotes NuGet, recebe esta mensagem: "Um ou mais pacotes não foi possível desinstalar completamente." e é-lhe solicitado para reiniciar o Visual Studio. Após a reinicialização do VS, você obtém erros de compilação estranhos.

A causa é que certos arquivos nos pacotes antigos são bloqueados por um processo MSBuild em segundo plano. Mesmo após a reinicialização do VS, o processo MSBuild em segundo plano ainda usa os arquivos nos pacotes antigos, causando as falhas de compilação.

A correção é instalar o VS 2012 Update, por exemplo, VS 2012 Update 2.

A atualização para o NuGet mais recente a partir de uma versão mais antiga causa um erro de verificação de assinatura

Se você estiver executando o VS 2010 SP1, poderá se deparar com a seguinte mensagem de erro ao tentar atualizar o NuGet se tiver uma versão mais antiga instalada.

Instalador de extensão do Visual Studio

Ao visualizar os logs, pode-se ver uma menção a um SignatureMismatchException.

Para evitar que isso ocorra, há um hotfix do Visual Studio 2010 SP1 que você pode instalar. Como alternativa, a solução alternativa é simplesmente desinstalar o NuGet (enquanto executa o Visual Studio como administrador) e, em seguida, instalá-lo a partir da Galeria de extensões do VS. Consulte https://support.microsoft.com/kb/2581019 para obter mais informações.

O Console do Gerenciador de Pacotes lança uma exceção quando o Refletor Visual Studio Add-In também está instalado.

Ao executar o console do Gerenciador de Pacotes, pode encontrar a seguinte mensagem de exceção se tiver instalado o suplemento Refletor VS.

The following error occurred while loading the extended type data file:
Microsoft.PowerShell.Core, C:\Windows\SysWOW64\WindowsPowerShell\v1.0\types.ps1xml(2950) :
Error in type "System.Security.AccessControl.ObjectSecurity":
Exception: Cannot convert the "Microsoft.PowerShell.Commands.SecurityDescriptorCommandsBase"
value of type "System.String" to type "System.Type".
System.Management.Automation.ActionPreferenceStopException:
Command execution stopped because the preference variable "ErrorActionPreference" or common parameter
is set to Stop: Unable to find type

ou

System.Management.Automation.CmdletInvocationException: Could not load file or assembly 'Scripts\nuget.psm1' or one of its dependencies. <br />The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG)) ---&gt; System.IO.FileLoadException: Could not load file or <br />assembly 'Scripts\nuget.psm1' or one of its dependencies. The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG)) <br />---&gt; System.ArgumentException: Illegal characters in path.
    at System.IO.Path.CheckInvalidPathChars(String path)
    at System.IO.Path.Combine(String path1, String path2)
    at Microsoft.VisualStudio.Platform.VsAppDomainManager.<AssemblyPaths>d__1.MoveNext()
    at Microsoft.VisualStudio.Platform.VsAppDomainManager.InnerResolveHandler(String name)
    at Microsoft.VisualStudio.Platform.VsAppDomainManager.ResolveHandler(Object sender, ResolveEventArgs args)
    at System.AppDomain.OnAssemblyResolveEvent(RuntimeAssembly assembly, String assemblyFullName)
    --- End of inner exception stack trace ---
    at Microsoft.PowerShell.Commands.ModuleCmdletBase.LoadBinaryModule(Boolean trySnapInName, String moduleName, String fileName, <br />Assembly assemblyToLoad, String moduleBase, SessionState ss, String prefix, Boolean loadTypes, Boolean loadFormats, Boolean&amp; found)
    at Microsoft.PowerShell.Commands.ModuleCmdletBase.LoadModuleNamedInManifest(String moduleName, String moduleBase, <br />Boolean searchModulePath, <br />String prefix, SessionState ss, Boolean loadTypesFiles, Boolean loadFormatFiles, Boolean&amp; found)
    at Microsoft.PowerShell.Commands.ModuleCmdletBase.LoadModuleManifest(ExternalScriptInfo scriptInfo, ManifestProcessingFlags <br />manifestProcessingFlags, Version version)
    at Microsoft.PowerShell.Commands.ModuleCmdletBase.LoadModule(String fileName, String moduleBase, String prefix, SessionState ss, <br />Boolean&amp; found)
    at Microsoft.PowerShell.Commands.ImportModuleCommand.ProcessRecord()
    at System.Management.Automation.Cmdlet.DoProcessRecord()
    at System.Management.Automation.CommandProcessor.ProcessRecord()
    --- End of inner exception stack trace ---
    at System.Management.Automation.Runspaces.PipelineBase.Invoke(IEnumerable input)
    at System.Management.Automation.Runspaces.Pipeline.Invoke()
    at NuGetConsole.Host.PowerShell.Implementation.PowerShellHost.Invoke(String command, Object input, Boolean outputResults)
    at NuGetConsole.Host.PowerShell.Implementation.PowerShellHostExtensions.ImportModule(PowerShellHost host, String modulePath)
    at NuGetConsole.Host.PowerShell.Implementation.PowerShellHost.LoadStartupScripts()
    at NuGetConsole.Host.PowerShell.Implementation.PowerShellHost.Initialize()
    at NuGetConsole.Implementation.Console.ConsoleDispatcher.Start()
    at NuGetConsole.Implementation.PowerConsoleToolWindow.MoveFocus(FrameworkElement consolePane)

Entramos em contato com o autor do suplemento na esperança de encontrar uma resolução.

Atualização: verificamos que a versão mais recente do Refletor, 6.5, não causa mais essa exceção no console.

A abertura do Console do Gerenciador de Pacotes falha com a exceção ObjectSecurity

Poderá ver estes erros ao tentar abrir a Consola do Gestor de Pacotes:

The following error occurred while loading the extended type data file: Microsoft.PowerShell.Core, C:\Windows\SysWOW64\WindowsPowerShell\v1.0\types.ps1xml(2977) : Error in type "System.Security.AccessControl.ObjectSecurity": Exception: The getter method should be public, non void, static, and have one parameter of type PSObject.
The following error occurred while loading the extended type data file: Microsoft.PowerShell.Core, C:\Windows\SysWOW64\WindowsPowerShell\v1.0\types.ps1xml(2984) : Error in type "System.Security.AccessControl.ObjectSecurity": Exception: The getter method should be public, non void, static, and have one parameter of type PSObject.
The following error occurred while loading the extended type data file: Microsoft.PowerShell.Core, C:\Windows\SysWOW64\WindowsPowerShell\v1.0\types.ps1xml(2991) : Error in type "System.Security.AccessControl.ObjectSecurity": Exception: The getter method should be public, non void, static, and have one parameter of type PSObject.
The following error occurred while loading the extended type data file: Microsoft.PowerShell.Core, C:\Windows\SysWOW64\WindowsPowerShell\v1.0\types.ps1xml(2998) : Error in type "System.Security.AccessControl.ObjectSecurity": Exception: The getter method should be public, non void, static, and have one parameter of type PSObject.
The following error occurred while loading the extended type data file: Microsoft.PowerShell.Core, C:\Windows\SysWOW64\WindowsPowerShell\v1.0\types.ps1xml(3005) : Error in type "System.Security.AccessControl.ObjectSecurity": Exception: The getter method should be public, non void, static, and have one parameter of type PSObject.
The term 'Get-ExecutionPolicy' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

Em caso afirmativo, siga a solução discutida em StackOverflow para corrigi-los.

A caixa de diálogo Adicionar Referência de Biblioteca de Pacotes lançará uma exceção se a solução contiver o Projeto de Edição Limitada do InstallShield

Identificamos que, se sua solução contiver um ou mais projetos InstallShield Limited Edition, a caixa de diálogo Adicionar Referência de Biblioteca de Pacotes abrirá uma exceção quando aberta. No momento, ainda não há solução alternativa, exceto remover projetos do InstallShield ou descarregá-los.

Desinstalar o botão Greyed out? O NuGet requer privilégios de administrador para instalar/desinstalar

Se você tentar desinstalar o NuGet por meio do Visual Studio Extension Manager, você pode notar que o botão Desinstalar está desativado. O NuGet requer acesso de administrador para instalar e desinstalar. Reinicie o Visual Studio como administrador para desinstalar a extensão. O NuGet não requer acesso de administrador para usá-lo.

O Console do Gerenciador de Pacotes falha quando eu o abro no Windows XP. Qual é o problema?

O NuGet requer o tempo de execução do Powershell 2.0. O Windows XP, por padrão, não tem o Powershell 2.0. Você pode baixar o runtime do PowerShell 2.0 em Download do PowerShell 2.0. Depois de instalá-lo, reinicie o Visual Studio e você deve ser capaz de abrir o Console do Gerenciador de Pacotes.

O Visual Studio 2010 SP1 Beta falha ao sair se o Console do Gerenciador de Pacotes estiver aberto.

Se você tiver instalado o Visual Studio 2010 SP1 Beta, você pode notar que, se você deixar o Console do Gerenciador de Pacotes aberto e fechar o Visual Studio, ele falhará. Este é um problema conhecido do Visual Studio e será corrigido na versão SP1 RTM. Por enquanto, basta ignorar a falha ou desinstalar o SP1 Beta, se puder.

O elemento «metadados» tem uma exceção de elemento filho inválido.

Se você instalou pacotes criados com uma versão de pré-lançamento do NuGet, poderá encontrar uma mensagem de erro informando "O elemento 'metadata' no namespace 'schemas.microsoft.com/packaging/2010/07/nuspec.xsd' tem elemento filho inválido" ao executar a versão RTM do NuGet com esse projeto. Você precisa desinstalar e reinstalar cada pacote usando a versão RTM do NuGet.

A tentativa de instalar ou desinstalar resulta no erro "Não é possível criar um arquivo quando esse arquivo já existe".

Por algum motivo, as extensões do Visual Studio podem ficar em um estado estranho onde você desinstalou a extensão VSIX, mas alguns arquivos foram deixados para trás. Para contornar esse problema:

  1. Sair do Visual Studio

  2. Abra a seguinte pasta (pode estar em uma unidade diferente na sua máquina)

    C:\Arquivos de Programas (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft Corporation\NuGet Package Manager<version>\

  3. Exclua todos os arquivos com as extensões .deleteme .

  4. Reabrir o Visual Studio

Depois de seguir estes passos, deverá poder continuar.

Em casos raros, compilar com a Análise de Código ativada causa erro.

Você pode obter o seguinte erro se instalar o FluentNHibernate com o console do Gerenciador de Pacotes e, em seguida, compilar seu projeto com a opção "Análise de código" ativada.

Error 3 CA0058 : The referenced assembly
'NHibernate, Version=3.0.0.2001, Culture=neutral, PublicKeyToken=aa95f207798dfdb4'
could not be found. This assembly is required for analysis and was referenced by:
C:\temp\Scratch\src\MyProject.UnitTests\bin\Debug\MyProject.UnitTests.dll.
MyProject.UnitTests

Por padrão, FluentNHibernate requer NHibernate 3.0.0.2001. No entanto, por design, o NuGet instalará o NHibernate 3.0.0.4000 em seu projeto e adicionará os redirecionamentos de vinculação apropriados para que ele funcione. Seu projeto será compilado normalmente se a análise de código não estiver ativada. Em contraste com o compilador, a ferramenta de análise de código não segue corretamente os redirecionamentos de vinculação para usar 3.0.0.4000 em vez de 3.0.0.2001. Você pode contornar o problema instalando NHibernate 3.0.0.2001 ou dizer à ferramenta de análise de código para se comportar da mesma forma que o compilador fazendo o seguinte:

  1. Vá para %PROGRAMFILES%\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop
  2. Abra FxCopCmd.exe.config e mude AssemblyReferenceResolveMode de StrongName para StrongNameIgnoringVersion.
  3. Salve a alteração e reconstrua seu projeto.

O comando Write-Error não está a funcionar dentro dos scripts install.ps1/uninstall.ps1/init.ps1.

Este é um problema conhecido. Em vez de chamar Write-Error, experimente chamar throw.

throw "My error message"

A instalação do NuGet com acesso restrito no Windows 2003 pode falhar o Visual Studio

Ao tentar instalar o NuGet usando o Visual Studio Extension Manager e não executando como administrador, a caixa de diálogo "Executar como" é exibida com a caixa de seleção "Executar este programa com acesso restrito" marcada por padrão.

Caixa de diálogo Executar como restrita

Ao clicar em OK com essa opção selecionada causa uma falha no Visual Studio. Certifique-se de desmarcar essa opção antes de instalar o NuGet.

Não é possível desinstalar o NuGet para Windows Phone Tools

Ferramentas do Windows Phone não tem suporte para o Visual Studio Extension Manager. Para desinstalar o NuGet, execute o seguinte comando.

vsixinstaller.exe /uninstall:NuPackToolsVsix.Microsoft.67e54e40-0ae3-42c5-a949-fddf5739e7a5

Mudar a capitalização dos IDs de pacotes NuGet interrompe a restauração de pacotes.

Conforme discutido longamente sobre esse problema do GitHub, a alteração da capitalização dos pacotes NuGet pode ser feita pelo suporte do NuGet, mas causa complicações durante a restauração de pacotes para usuários que têm pacotes existentes com maiúsculas e minúsculas diferentes em sua pasta de pacotes globais . Recomendamos solicitar apenas uma alteração de caso quando você tiver uma maneira de se comunicar com os usuários existentes do seu pacote sobre a quebra que pode ocorrer na restauração do pacote em tempo de compilação.

Comunicar problemas

Para relatar problemas do NuGet, visite https://github.com/nuget/home/issues.