Compartir a través de


Problemas conocidos con NuGet

Estos son los problemas conocidos más comunes con NuGet que se notifican repetidamente. Si tiene problemas para instalar NuGet o administrar paquetes, consulte estos problemas conocidos y sus soluciones.

Nota:

A partir de NuGet 4.0, los problemas conocidos forman parte de las notas de la versión correspondientes.

Es posible que la configuración de auditoría de NuGet no se aplique correctamente para los proyectos que usan packages.config en Visual Studio 17.10

Se ha agregado compatibilidad con la auditoría de NuGet para proyectos de packages.config a partir de NuGet 6.10 y Visual Studio 17.10. Puede encontrar información sobre cómo configurar la auditoría de NuGet en nuestros documentos sobre los paquetes de auditoría.

Problema:

Si dos o más proyectos que usan packages.config en la solución usan el mismo nombre de proyecto, NuGet Audit elegirá uno y usará la misma configuración de Auditoría de NuGet para ambos proyectos.

El problema de seguimiento para quitar esta limitación está disponible en GitHub.

Solución alternativa:

Si todos los proyectos con el mismo nombre usan los mismos valores de configuración, no habrá ninguna diferencia funcional cuando NuGet restaure un proyecto mediante la configuración de otro proyecto.

NuGet.exe no tiene esta limitación, por lo que puede descargar NuGet.exe y ejecutar NuGet.exe restore en la solución para ver si las advertencias de auditoría de NuGet son diferentes en la línea de comandos a lo que Visual Studio está notificando.

Si es factible cambiar el nombre de los proyectos para que tengan nombres de proyecto diferentes, no se encontrará este escenario de problema.

Problemas de autenticación con fuentes nuGet en VSTS con nuget.exe v3.4.3

Problema:

Cuando usamos el siguiente comando para almacenar las credenciales, terminamos cifrando doblemente el token de acceso personal.

$PAT = "Su token de acceso personal" $Feed = "Su dirección URL". Los orígenes de\nuget.exe agregan -Name test -Source $Feed -UserName $UserName -Password $PAT

Solución alternativa:

Almacene contraseñas en texto no cifrado mediante la opción -StorePasswordInClearText .

Error al instalar paquetes con NuGet 3.4, 3.4.1

Problema:

En NuGet 3.4 y 3.4.1, al usar el complemento NuGet, no se notifica ningún origen como disponible y no se pueden agregar nuevos orígenes en la ventana de configuración. El resultado es similar a la imagen siguiente:

Configuración de NuGet sin fuentes

El NuGet.Config archivo de la %AppData%\NuGet\ carpeta (Windows) o ~/.nuget/ (Mac/Linux) se ha vaciado accidentalmente. Para corregir esto: cierre Visual Studio (en Windows, si procede), elimine el NuGet.Config archivo e inténtelo de nuevo. NuGet generó un nuevo NuGet.Config y debería poder continuar.

Error al instalar paquetes con NuGet 2.7

Problema:

En NuGet 2.7 o versiones posteriores, al intentar instalar cualquier paquete que contenga referencias de ensamblado, puede recibir el mensaje de error "La cadena de entrada no estaba en un formato correcto"., como se indica a continuación:

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

Esto se debe a que la biblioteca de tipos del componente COM del VSLangProj.dll se ha desregistrado en su sistema. Esto puede ocurrir, por ejemplo, cuando tiene dos versiones de Visual Studio instaladas en paralelo y, a continuación, desinstala la versión anterior. Si lo hace, puede anular accidentalmente el registro de la biblioteca COM anterior.

Solución::

Ejecute este comando desde un indicador de comandos con derechos administrativos para volver a registrar la biblioteca de tipos para VSLangProj.dll

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

Si se produce un error en el comando, compruebe si el archivo existe en esa ubicación.

Para obtener más información sobre este error, vea este [work item](https://nuget.codeplex.com/workitem/3609 "Work item 3609").

Error de compilación después de la actualización del paquete en VS 2012

El problema: usa VS 2012 RTM. Al actualizar paquetes NuGet, recibirá este mensaje: "No se pudieron desinstalar uno o más paquetes" y se le pedirá que reinicie Visual Studio. Después del reinicio de VS, obtendrá errores de compilación extraños.

La causa es que determinados archivos de los paquetes antiguos están bloqueados por un proceso de MSBuild en segundo plano. Incluso después del reinicio de VS, el proceso de MSBuild en segundo plano sigue usando los archivos de los paquetes antiguos, lo que provoca errores de compilación.

La corrección consiste en instalar la actualización de VS 2012, por ejemplo, VS 2012 Update 2.

La actualización a NuGet más reciente desde una versión anterior provoca un error de comprobación de firma

Si ejecuta VS 2010 SP1, es posible que se produzca el siguiente mensaje de error al intentar actualizar NuGet si tiene instalada una versión anterior.

Instalador de extensión de Visual Studio

Al revisar los registros, es posible que vea una mención de SignatureMismatchException.

Para evitar que esto ocurra, hay una revisión de Visual Studio 2010 SP1 que puede instalar. Como alternativa, la solución alternativa es simplemente desinstalar NuGet (mientras se ejecuta Visual Studio como administrador) y, a continuación, instalarlo desde la Galería de extensiones de VS. Consulte https://support.microsoft.com/kb/2581019 para obtener más información.

La consola del Administrador de paquetes produce una excepción cuando también se instala el Add-In reflector de Visual Studio.

Al ejecutar la consola del Administrador de paquetes, puede recibir el siguiente mensaje de excepción si tiene instalado el complemento VS de Reflector.

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

o

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)

Nos hemos puesto en contacto con el autor del complemento con la esperanza de llegar a una resolución.

Actualización: hemos comprobado que la versión más reciente de Reflector, 6.5, ya no provoca esta excepción en la consola.

Error al abrir la Consola del Administrador de Paquetes debido a una excepción de ObjectSecurity.

Es posible que vea estos errores al intentar abrir la consola del Administrador de paquetes:

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.

Si es así, siga la solución que se describe en StackOverflow para corregirlas.

El cuadro de diálogo 'Agregar referencia de biblioteca de paquetes' produce una excepción si la solución contiene un proyecto de edición limitada de InstallShield.

Hemos identificado que si la solución contiene uno o varios proyectos de InstallShield Limited Edition, el cuadro de diálogo Agregar referencia de biblioteca de paquetes producirá una excepción cuando se abra. Actualmente no hay solución alternativa, excepto quitar proyectos de InstallShield o desactivarlos.

Botón de desinstalación desactivado? NuGet requiere privilegios de administrador para instalar o desinstalar

Si intenta desinstalar NuGet a través del Administrador de extensiones de Visual Studio, puede observar que el botón Desinstalar está deshabilitado. NuGet requiere acceso de administrador para instalar y desinstalar. Vuelva a iniciar Visual Studio como administrador para desinstalar la extensión. NuGet no requiere acceso de administrador para usarlo.

La consola del Administrador de paquetes se bloquea al abrirla en Windows XP. ¿Qué pasa?

NuGet requiere el entorno de ejecución de PowerShell 2.0. Windows XP, de forma predeterminada, no tiene Powershell 2.0. Puede descargar el entorno de ejecución de PowerShell 2.0 desde la descarga de PowerShell 2.0. Después de instalarlo, reinicie Visual Studio y debería poder abrir la consola del Administrador de paquetes.

Visual Studio 2010 SP1 Beta se bloquea al salir si la consola del Administrador de paquetes está abierta.

Si ha instalado Visual Studio 2010 SP1 Beta, puede notar que, si deja abierta la Consola del Administrador de Paquetes y cierra Visual Studio, se colgará. Se trata de un problema conocido de Visual Studio y se corregirá en la versión de SP1 RTM. Por ahora, simplemente ignore el fallo o desinstale SP1 Beta si puede.

El elemento 'metadata' ... tiene una excepción de elemento secundario no válido

Si instaló paquetes creados con una versión preliminar de NuGet, es posible que encuentre un mensaje de error que indica "El elemento 'metadata' en el espacio de nombres 'schemas.microsoft.com/packaging/2010/07/nuspec.xsd' tiene un elemento secundario no válido" al ejecutar la versión RTM de NuGet con ese proyecto. Debe desinstalar y volver a instalar cada paquete mediante la versión RTM de NuGet.

Si se intenta instalar o desinstalar, se produce el error "No se puede crear un archivo cuando ese archivo ya existe".

Por algún motivo, las extensiones de Visual Studio pueden llegar a un estado extraño en el que se ha desinstalado la extensión VSIX, pero algunos archivos se han dejado atrás. Para evitar este problema:

  1. Salir de Visual Studio

  2. Abra la carpeta siguiente (puede estar en otra unidad del equipo).

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

  3. Elimine todos los archivos con las extensiones .deleteme .

  4. Volver a abrir Visual Studio

Después de seguir estos pasos, debería poder continuar.

En raras ocasiones, la compilación con análisis de código activada provoca un error.

Es posible que reciba el siguiente error si instala FluentNHibernate con la consola del Administrador de paquetes y, a continuación, compile el proyecto con "Análisis de código" activado.

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

De forma predeterminada, FluentNHibernate requiere NHibernate 3.0.0.2001. Sin embargo, por diseño NuGet instalará NHibernate 3.0.0.4000 en el proyecto y agregará las redirecciones de enlace adecuadas para que funcione. El proyecto se compilará correctamente si el análisis de código no está activado. A diferencia del compilador, la herramienta de análisis de código no sigue correctamente las redirecciones de enlace para usar 3.0.0.4000 en lugar de 3.0.0.2001. Para solucionar el problema, instale NHibernate 3.0.0.2001 o indique a la herramienta de análisis de código que se comporte igual que el compilador haciendo lo siguiente:

  1. Vaya a %PROGRAMFILES%\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop
  2. Abra FxCopCmd.exe.config y cambie AssemblyReferenceResolveMode de StrongName a StrongNameIgnoringVersion.
  3. Guarda el cambio y reconstruye tu proyecto.

El comando Write-Error no funciona dentro de install.ps1/uninstall.ps1/init.ps1

Se trata de un problema conocido. En lugar de llamar a Write-Error, pruebe llamar a throw.

throw "My error message"

La instalación de NuGet con acceso restringido en Windows 2003 puede bloquear Visual Studio

Al intentar instalar NuGet con el Administrador de extensiones de Visual Studio y no ejecutarse como administrador, se muestra el cuadro de diálogo "Ejecutar como" con la casilla "Ejecutar este programa con acceso restringido" activada de forma predeterminada.

Cuadro de diálogo Ejecutar como restringido

Hacer clic en Aceptar con esa opción marcada provoca el cierre inesperado de Visual Studio. Asegúrese de desactivar esa opción antes de instalar NuGet.

No se puede desinstalar NuGet para herramientas de Windows Phone

Windows Phone Tools no admite el Administrador de extensiones de Visual Studio. Para desinstalar NuGet, ejecute el siguiente comando.

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

Cambiar el uso de mayúsculas de los identificadores de paquete de NuGet interrumpe la restauración de paquetes.

Como se describe en este problema de GitHub, el cambio de mayúsculas y minúsculas de los paquetes NuGet puede ser realizado por el soporte de NuGet, pero causa complicaciones durante la restauración de paquetes para los usuarios que tienen paquetes existentes con diferentes capitalizaciones en su carpeta global-packages. Solo se recomienda solicitar un cambio de caso cuando tenga una manera de comunicarse con los usuarios existentes del paquete sobre la interrupción que puede producirse en su restauración del paquete en tiempo de compilación.

Información sobre los problemas

Para notificar problemas de NuGet, visite https://github.com/nuget/home/issues.