Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questi sono i problemi noti più comuni con NuGet segnalati ripetutamente. Se si verificano problemi durante l'installazione di NuGet o la gestione dei pacchetti, esaminare questi problemi noti e le relative soluzioni.
Annotazioni
A partire da NuGet 4.0, i problemi noti fanno parte delle rispettive note sulla versione.
Le impostazioni di controllo NuGet potrebbero non essere applicate correttamente per i progetti che usano packages.config in Visual Studio 17.10
È stato aggiunto il supporto di Controllo NuGet per i progetti packages.config a partire da NuGet 6.10 e Visual Studio 17.10. Per informazioni su come configurare NuGet Audit, vedere nella nostra documentazione sui pacchetti di auditing.
Problema:
Se due o più progetti che usano packages.config nella soluzione usano lo stesso nome di progetto, NuGet Audit sceglierà uno e userà le stesse impostazioni di controllo NuGet per entrambi i progetti.
Il problema di rilevamento per rimuovere questa limitazione è disponibile in GitHub.
Soluzione alternativa:
Se tutti i progetti con lo stesso nome usano gli stessi valori di configurazione, non ci sarà alcuna differenza funzionale quando NuGet ripristina un progetto usando la configurazione di un progetto diverso.
NuGet.exe non ha questa limitazione, quindi è possibile scaricare NuGet.exe ed eseguire NuGet.exe restore nella soluzione per verificare se gli avvisi di controllo NuGet sono diversi dalla riga di comando a ciò che Visual Studio sta segnalando.
Se è possibile rinominare i progetti in modo che abbiano nomi di progetto diversi, questo scenario di problema non verrà rilevato.
Problemi di autenticazione con i feed NuGet in VSTS con nuget.exe v3.4.3
Problema:
Quando si usa il comando seguente per archiviare le credenziali, si verifica la doppia crittografia del token di accesso personale.
$PAT = "Token di accesso personale" $Feed = "Url" .\nuget.exe origini aggiungono -Name test -Source $Feed -UserName $UserName -Password $PAT
Soluzione alternativa:
Archiviare le password in testo non crittografato usando l'opzione -StorePasswordInClearText .
Errore durante l'installazione dei pacchetti con NuGet 3.4, 3.4.1
Problema:
In NuGet 3.4 e 3.4.1, quando si usa il componente aggiuntivo NuGet, non vengono segnalate origini come disponibili e non è possibile aggiungere nuove origini nella finestra di configurazione. Il risultato è simile all'immagine seguente:
Il NuGet.Config file nella %AppData%\NuGet\ cartella (Windows) o ~/.nuget/ (Mac/Linux) è stato svuotato accidentalmente. Per risolvere il problema: chiudere Visual Studio (in Windows, se applicabile), eliminare il NuGet.Config file e ritentare l'operazione. NuGet ha generato un nuovo NuGet.Config e dovrebbe essere possibile procedere.
Errore durante l'installazione dei pacchetti con NuGet 2.7
Problema:
In NuGet 2.7 o versione successiva, quando si tenta di installare qualsiasi pacchetto che contiene riferimenti all'assembly, è possibile che venga visualizzato il messaggio di errore "La stringa di input non era in un formato corretto". Come illustrato di seguito:
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
Questo è causato dalla libreria dei tipi del VSLangProj.dll componente COM non registrata nel sistema. Ciò può verificarsi, ad esempio, quando si dispone di due versioni di Visual Studio installate side-by-side e quindi si disinstalla la versione precedente. In questo modo è possibile annullare inavvertitamente la registrazione della libreria COM precedente.
Soluzione::
Eseguire questo comando da un prompt con privilegi elevati per registrare nuovamente la libreria dei tipi per VSLangProj.dll
regsvr32 "C:\Program Files (x86)\Common Files\microsoft shared\MSEnv\VsLangproj.olb"
Se il comando non riesce, verificare se il file esiste in quel percorso.
Per altre informazioni su questo errore, vedere questo [work item](https://nuget.codeplex.com/workitem/3609 "Work item 3609").
Errore di compilazione dopo l'aggiornamento del pacchetto in VS 2012
Problema: si usa VS 2012 RTM. Quando si aggiornano i pacchetti NuGet, viene visualizzato questo messaggio: "Non è stato possibile completare la disinstallazione di uno o più pacchetti". Viene richiesto di riavviare Visual Studio. Dopo il riavvio di Visual Studio, vengono visualizzati errori di compilazione strani.
La causa è che alcuni file nei pacchetti precedenti sono bloccati da un processo MSBuild in background. Anche dopo il riavvio di Visual Studio, il processo MSBuild in background usa ancora i file nei pacchetti precedenti, causando gli errori di compilazione.
La correzione consiste nell'installare VS 2012 Update, ad esempio VS 2012 Update 2.
L'aggiornamento alla versione più recente di NuGet da una versione precedente causa un errore di verifica della firma
Se si esegue VS 2010 SP1, è possibile che venga visualizzato il messaggio di errore seguente quando si tenta di aggiornare NuGet se è installata una versione precedente.
Quando si esaminano i log, potrebbe essere visualizzato un riferimento a SignatureMismatchException.
Per evitare che ciò si verifichi, è possibile installare un hotfix di Visual Studio 2010 SP1 . In alternativa, la soluzione alternativa consiste nel disinstallare semplicemente NuGet (durante l'esecuzione di Visual Studio come amministratore) e quindi installarla dalla raccolta di estensioni di Visual Studio. Per altre informazioni, vedere https://support.microsoft.com/kb/2581019.
La console di Gestione pacchetti genera un'eccezione quando viene installato anche il Add-In Reflector di Visual Studio.
Quando si esegue la console di Gestione pacchetti, è possibile che venga visualizzato il messaggio di eccezione seguente se è installato il componente aggiuntivo Reflector 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
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)) ---> 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 />---> 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& found)
at Microsoft.PowerShell.Commands.ModuleCmdletBase.LoadModuleNamedInManifest(String moduleName, String moduleBase, <br />Boolean searchModulePath, <br />String prefix, SessionState ss, Boolean loadTypesFiles, Boolean loadFormatFiles, Boolean& 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& 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)
Abbiamo contattato l'autore del componente aggiuntivo nella speranza di lavorare a una risoluzione.
Aggiornamento: è stato verificato che la versione più recente di Reflector, 6.5, non causa più questa eccezione nella console.
L'apertura della Console di Gestione Pacchetti fallisce con un'eccezione di sicurezza dell'oggetto
È possibile che vengano visualizzati questi errori quando si tenta di aprire la console di Gestione pacchetti:
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.
In tal caso, seguire la soluzione descritta in StackOverflow per correggerle.
La finestra di dialogo Aggiungi riferimento alla libreria di pacchetti solleva un'eccezione se la soluzione contiene il progetto InstallShield Limited Edition
È stato rilevato che se la soluzione contiene uno o più progetti InstallShield Limited Edition, la finestra di dialogo Aggiungi riferimento alla libreria pacchetti genererà un'eccezione quando viene aperta. Attualmente non esiste alcuna soluzione alternativa, ad eccezione della rimozione dei progetti InstallShield o dello scaricamento.
Pulsante disinstalla disattivato? NuGet richiede privilegi di amministratore per installare/disinstallare
Se si tenta di disinstallare NuGet tramite Gestione estensioni di Visual Studio, è possibile notare che il pulsante Disinstalla è disabilitato. NuGet richiede l'accesso amministratore per installare e disinstallare. Riavviare Visual Studio come amministratore per disinstallare l'estensione. NuGet non richiede l'accesso amministratore per usarlo.
La console di Gestione pacchetti si arresta in modo anomalo quando la si apre in Windows XP. Cosa c'è che non va?
NuGet richiede il runtime di PowerShell 2.0. Windows XP, per impostazione predefinita, non ha PowerShell 2.0. È possibile scaricare il runtime di PowerShell 2.0 dal download di PowerShell 2.0. Dopo averla installata, riavviare Visual Studio e dovrebbe essere possibile aprire la console di Gestione pacchetti.
Visual Studio 2010 SP1 Beta si arresta in modo anomalo all'uscita se la console di Gestione pacchetti è aperta.
Se hai installato Visual Studio 2010 SP1 Beta, è possibile notare che se si lascia aperta la console di Gestione Pacchetti e si chiude Visual Studio, si verificherà un arresto anomalo. Si tratta di un problema noto di Visual Studio e verrà risolto nella versione SP1 RTM. Per il momento, è sufficiente ignorare l'arresto anomalo o disinstallare SP1 Beta, se possibile.
L'elemento 'metadata' ha un'eccezione dovuta a un elemento figlio non valido.
Se hai installato pacchetti compilati con una versione preliminare di NuGet, potresti incontrare un messaggio di errore che indica che l'elemento 'metadata' nello spazio dei nomi 'schemas.microsoft.com/packaging/2010/07/nuspec.xsd' ha un elemento figlio non valido" durante l'esecuzione della versione RTM di NuGet con quel progetto. È necessario disinstallare e quindi reinstallare ogni pacchetto usando la versione RTM di NuGet.
Se si tenta di installare o disinstallare, viene restituito l'errore "Impossibile creare un file quando tale file esiste già".
Per qualche motivo, le estensioni di Visual Studio possono ottenere uno stato strano in cui è stata disinstallata l'estensione VSIX, ma alcuni file sono stati lasciati indietro. Per risolvere questo problema:
Uscire da Visual Studio
Aprire la cartella seguente (potrebbe trovarsi in un'unità diversa nel computer)
C:\Programmi (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft Corporation\NuGet Package Manager<version>\
Eliminare tutti i file con estensioni deleteme .
Riaprire Visual Studio
Dopo aver seguito questi passaggi, dovrebbe essere possibile continuare.
In rari casi, la compilazione con l'analisi del codice attivata causa un errore.
È possibile che venga visualizzato l'errore seguente se si installa FluentNHibernate con la console di Gestione pacchetti e quindi si compila il progetto con "Analisi codice" attivato.
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
Per impostazione predefinita, FluentNHibernate richiede NHibernate 3.0.0.2001. Tuttavia, per progettazione NuGet installerà NHibernate 3.0.0.4000 nel progetto e aggiungerà i reindirizzamenti di associazione appropriati in modo che funzioni. Il progetto verrà compilato correttamente se l'analisi del codice non è attivata. A differenza del compilatore, lo strumento di analisi del codice non segue correttamente i reindirizzamenti dell'associazione per usare 3.0.0.4000 anziché 3.0.0.2001. È possibile risolvere il problema installando NHibernate 3.0.0.2001 o comunicando allo strumento di analisi del codice di comportarsi come il compilatore eseguendo le operazioni seguenti:
- Passare a %PROGRAMFILES%\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop
- Aprire FxCopCmd.exe.config e passare
AssemblyReferenceResolveModedaStrongNameaStrongNameIgnoringVersion. - Salva la modifica e ricompila il progetto.
il comando Write-Error non funziona all'interno di install.ps1/uninstall.ps1/init.ps1
Si tratta di un problema noto. Anziché chiamare Write-Error, provare a chiamare throw.
throw "My error message"
L'installazione di NuGet con accesso limitato in Windows 2003 può causare l'arresto anomalo di Visual Studio
Quando si tenta di installare NuGet usando Gestione estensioni di Visual Studio e non è in esecuzione come amministratore, viene visualizzata la finestra di dialogo "RunAs" con la casella di controllo "Esegui questo programma con accesso limitato" selezionata per impostazione predefinita.
Facendo clic su OK con questa opzione selezionata, Visual Studio si arresta in modo anomalo. Assicurarsi di deselezionare l'opzione prima di installare NuGet.
Impossibile disinstallare NuGet per gli strumenti di Windows Phone
Gli strumenti di Windows Phone non dispongono del supporto per Gestione estensioni di Visual Studio. Per disinstallare NuGet, eseguire il comando seguente.
vsixinstaller.exe /uninstall:NuPackToolsVsix.Microsoft.67e54e40-0ae3-42c5-a949-fddf5739e7a5
Cambiare la capitalizzazione degli ID dei pacchetti NuGet interrompe il ripristino del pacchetto.
Come discusso a lungo su questo problema di GitHub, la modifica della capitalizzazione dei pacchetti NuGet può essere eseguita dal supporto NuGet, ma causa complicazioni durante il ripristino dei pacchetti per gli utenti che hanno pacchetti esistenti con una capitalizzazione diversa nella cartella global-packages. È consigliabile richiedere una modifica del progetto solo quando si dispone di un modo per comunicare con gli utenti esistenti del pacchetto riguardo all'interruzione che può verificarsi nel ripristino del pacchetto durante la fase di compilazione.
Segnalazione di problemi
Per segnalare i problemi di NuGet, visitare https://github.com/nuget/home/issues.