Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Jedná se o nejběžnější známé problémy s NuGetem, které se opakovaně hlásí. Pokud máte potíže s instalací NuGetu nebo správou balíčků, projděte si tyto známé problémy a jejich řešení.
Poznámka:
Od NuGetu 4.0 jsou známé problémy součástí příslušných poznámek k verzi.
U projektů používajících packages.config v sadě Visual Studio 17.10 nemusí být správně použito nastavení auditu NuGet.
Byla přidána podpora auditu NuGet pro projekty packages.config od NuGetu 6.10 a sady Visual Studio 17.10. Informace o tom, jak nakonfigurovat Audit NuGet, najdete v naší dokumentaci k balíčkům auditování.
Problém:
Pokud dva nebo více projektů používajících packages.config v řešení používají stejný název projektu, vybere audit NuGet jedno a použije stejné nastavení auditu NuGet pro oba projekty.
Problém se sledováním odebrání tohoto omezení je k dispozici na GitHubu.
Alternativní řešení:
Pokud všechny projekty se stejným názvem používají stejné konfigurační hodnoty, nebude žádný funkční rozdíl, když NuGet obnoví jeden projekt pomocí jiné konfigurace projektu.
NuGet.exe toto omezení nemá, takže si můžete stáhnout NuGet.exe a spustit NuGet.exe restore v řešení, abyste zjistili, jestli se upozornění auditu NuGet na příkazovém řádku liší od toho, co Visual Studio hlásí.
Pokud je možné přejmenovat projekty tak, aby měly různé názvy projektů, tento problém se nezobrazí.
Problémy s ověřováním zdrojů NuGet ve VSTS s nuget.exe v3.4.3
Problém:
Když k uložení přihlašovacích údajů použijeme následující příkaz, zašifrujeme osobní přístupový token dvojitým šifrováním.
$PAT = "Váš osobní přístupový token" $Feed = "Vaše adresa URL" .\nuget.exe zdroje přidávají -Name testovací -Source $Feed -UserName $UserName -Password $PAT
Alternativní řešení:
Hesla můžete ukládat ve formátu prostého textu pomocí možnosti -StorePasswordInClearText .
Chyba při instalaci balíčků s NuGetem 3.4, 3.4.1
Problém:
Při použití doplňku NuGet 3.4 a 3.4.1 nejsou žádné zdroje hlášeny jako dostupné a v okně konfigurace nemůžete přidat nové zdroje. Výsledek je podobný následujícímu obrázku:
Soubor NuGet.Config ve složce %AppData%\NuGet\ (Windows) nebo ~/.nuget/ (Mac/Linux) se omylem vyprázdnil. Pokud chcete tento problém vyřešit, zavřete Visual Studio (v případě potřeby ve Windows), odstraňte NuGet.Config soubor a zkuste operaci zopakovat. NuGet vygeneroval nový NuGet.Config a měli byste být schopni pokračovat.
Chyba při instalaci balíčků s NuGetem 2.7
Problém:
Při pokusu o instalaci libovolného balíčku obsahujícího odkazy na sestavení v NuGetu 2.7 nebo novějším se může zobrazit chybová zpráva "Vstupní řetězec nebyl ve správném formátu", například níže:
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
Příčinou je knihovna typů pro komponentu VSLangProj.dll COM, která se ve vašem systému neregistruje. K tomu může dojít například v případě, že máte nainstalované dvě verze sady Visual Studio vedle sebe a pak odinstalujete starší verzi. Tím se může neúmyslně odregistrovat výše uvedená COM knihovna.
Řešení::
Spuštěním tohoto příkazu z příkazového řádku se zvýšenými oprávněními znovu zaregistrujte knihovnu typů pro VSLangProj.dll
regsvr32 "C:\Program Files (x86)\Common Files\microsoft shared\MSEnv\VsLangproj.olb"
Pokud příkaz selže, zkontrolujte, jestli soubor v tomto umístění existuje.
Další informace o této chybě naleznete na tomto [work item](https://nuget.codeplex.com/workitem/3609 "Work item 3609").
Selhání kompilace po aktualizaci balíčku ve VS 2012
Problém: Používáte VS 2012 RTM. Při aktualizaci balíčků NuGet se zobrazí tato zpráva: "Jeden nebo více balíčků nebylo možné odinstalovat." a zobrazí se výzva k restartování sady Visual Studio. Po restartování VS se zobrazí divné chyby sestavení.
Příčinou je, že určité soubory ve starých balíčcích jsou uzamčeny procesem MSBuild na pozadí. I po restartování VS proces MSBuild na pozadí stále používá soubory ve starých balíčcích, což způsobuje selhání sestavení.
Opravou je instalace aktualizace VS 2012, např. VS 2012 Update 2.
Upgrade na nejnovější NuGet ze starší verze způsobí chybu ověření podpisu.
Pokud používáte VS 2010 SP1, může při pokusu o upgrade NuGet dojít k následující chybové zprávě, pokud máte nainstalovanou starší verzi.
Při prohlížení protokolů se může zobrazit zmínka o SignatureMismatchException.
Aby k tomu nedošlo, je k dispozici oprava hotfix sady Visual Studio 2010 SP1 , kterou můžete nainstalovat. Alternativním řešením je jednoduše odinstalovat NuGet (při spuštění sady Visual Studio jako správce) a pak ho nainstalovat z galerie rozšíření VS. Další informace naleznete na https://support.microsoft.com/kb/2581019.
Konzola Správce balíčků vyvolá výjimku, pokud je nainstalována také sada Reflector Visual Studio Add-In.
Pokud máte nainstalovaný doplněk Reflector VS, můžete při spuštění konzoly Správce balíčků narazit na následující zprávu o výjimce.
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
nebo
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)
Kontaktovali jsme autora doplňku s nadějemi na vyřešení.
Aktualizace: Ověřili jsme, že nejnovější verze Reflectoru verze 6.5 už v konzole nezpůsobí tuto výjimku.
Otevření konzoly Správce balíčků selže kvůli chybě výjimky ObjectSecurity
Při pokusu o otevření konzoly Správce balíčků se můžou zobrazit tyto chyby:
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.
Pokud ano, postupujte podle řešení probíraného na StackOverflow a opravte je.
Dialogové okno Přidat odkaz na knihovnu balíčků vyvolá výjimku, pokud řešení obsahuje projekt InstallShield Limited Edition
Zjistili jsme, že pokud vaše řešení obsahuje jeden nebo více projektů InstallShield Limited Edition, dialogové okno Přidat odkaz na knihovnu balíčků vyvolá výjimku při otevření. Momentálně neexistuje žádné alternativní řešení s výjimkou odebrání projektů InstallShield nebo jejich uvolnění.
Je tlačítko Odinstalovat zašedlé? NuGet vyžaduje oprávnění správce k instalaci nebo odinstalaci.
Pokud se pokusíte odinstalovat NuGet přes Správce rozšíření sady Visual Studio, můžete si všimnout, že tlačítko Odinstalovat je zakázané. NuGet vyžaduje přístup správce k instalaci a odinstalaci. Znovu spusťte Visual Studio jako správce a odinstalujte rozšíření. NuGet nevyžaduje k jeho použití přístup správce.
Konzola Správce balíčků se chybově ukončí, když ji otevřu v systému Windows XP. Co je?
NuGet vyžaduje prostředí PowerShellu 2.0. Windows XP ve výchozím nastavení nemá PowerShell 2.0. Můžete si stáhnout runtime PowerShell 2.0 z PowerShell 2.0 ke stažení. Po instalaci restartujte Visual Studio a měli byste být schopni otevřít konzolu Správce balíčků.
Visual Studio 2010 SP1 Beta se při ukončení ukončí, pokud je otevřená konzola Správce balíčků.
Pokud jste nainstalovali Visual Studio 2010 SP1 Beta, můžete si všimnout, že pokud necháte konzolu Správce balíčků otevřenou a zavřete Visual Studio, dojde k chybovému ukončení. Jedná se o známý problém sady Visual Studio a bude opraven ve verzi SP1 RTM. Prozatím ignorujte chybové ukončení nebo odinstalujte verzi SP1 Beta, pokud můžete.
Prvek metadata ... Má neplatnou výjimku podřízeného elementu.
Pokud jste nainstalovali balíčky vytvořené s předběžnou verzí NuGetu, může při spuštění RTM verze NuGetu v daném projektu zobrazit chybovou zprávu, která uvádí "Element 'metadata'" v oboru názvů "schemas.microsoft.com/packaging/2010/07/nuspec.xsd" má neplatný podřízený prvek. Potřebujete odinstalovat a pak znovu nainstalovat každý balíček pomocí verze RTM NuGetu.
Při pokusu o instalaci nebo odinstalaci dojde k chybě "Soubor nelze vytvořit, pokud již tento soubor existuje".
Z nějakého důvodu se rozšíření sady Visual Studio můžou dostat do divného stavu, kdy jste odinstalovali rozšíření VSIX, ale některé soubory zůstaly za sebou. Tento problém můžete vyřešit takto:
Ukončení sady Visual Studio
Otevřete následující složku (může být na jiné jednotce na vašem počítači).
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft Corporation\NuGet Package Manager<version>\
Odstraňte všechny soubory s příponou .deleteme .
Opětovné otevření sady Visual Studio
Po provedení těchto kroků byste měli být schopni pokračovat.
Ve výjimečných případech způsobí kompilace se zapnutou analýzou kódu chybu.
Pokud nainstalujete FluentNHibernate s konzolou Správce balíčků a pak projekt zkompilujete se zapnutou analýzou kódu, může se zobrazit následující chyba.
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
Ve výchozím nastavení vyžaduje FluentNHibernate NHibernate 3.0.0.2001. NuGet však podle návrhu nainstaluje NHibernate 3.0.0.4000 ve vašem projektu a přidá příslušná přesměrování vazeb, aby to fungovalo. Projekt se zkompiluje správně, pokud není zapnutá analýza kódu. Na rozdíl od kompilátoru nástroj pro analýzu kódu správně nenásleduje přesměrování vazeb, aby používal verzi 3.0.0.4000 místo 3.0.0.2001. Tento problém můžete obejít tak, že nainstalujete NHibernate 3.0.0.2001 nebo dáte nástroji pro analýzu kódu, aby se choval stejně jako kompilátor, a to následujícím způsobem:
- Přejděte na %PROGRAMFILES%\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop
- Otevřete FxCopCmd.exe.config a změňte hodnotu z
StrongNamenaStrongNameIgnoringVersion. - Uložte změnu a znovu sestavte projekt.
příkaz Write-Error nefunguje uvnitř install.ps1/uninstall.ps1/init.ps1
Jedná se o známý problém. Místo volání Write-Error zkuste použít throw.
throw "My error message"
Instalace NuGetu s omezeným přístupem na Windows 2003 může způsobit pád aplikace Visual Studio.
Při pokusu o instalaci balíčku NuGet pomocí Správce rozšíření sady Visual Studio a nejste přihlášeni jako správce, zobrazí se dialogové okno Spustit jako se zaškrtávacím políčkem "Spustit tento program s omezeným přístupem", které je ve výchozím nastavení zaškrtnuté.
Kliknutím na OK při zaškrtnutí této volby dojde k chybovému ukončení sady Visual Studio. Před instalací NuGet nezapomeňte zrušit zaškrtnutí této možnosti.
Nelze odinstalovat NuGet pro nástroje Windows Phone.
Nástroje windows Phone Tools nepodporují Správce rozšíření sady Visual Studio. Pokud chcete odinstalovat NuGet, spusťte následující příkaz.
vsixinstaller.exe /uninstall:NuPackToolsVsix.Microsoft.67e54e40-0ae3-42c5-a949-fddf5739e7a5
Změna velikosti velkých písmen ID balíčků NuGet přeruší obnovení balíčku.
Jak je podrobně popsáno na problému na GitHubu, podpora NuGetu může provést změnu velikosti písmen balíčků NuGet, ale může způsobit komplikace při obnově balíčků pro uživatele, kteří mají existující balíčky s rozdílnou velikostí písmen ve složce global-packages. Pokud máte způsob, jak komunikovat se stávajícími uživateli svého balíčku ohledně přerušení, které může nastat při obnovování balíčku během sestavení, doporučujeme požádat pouze o změnu konfigurace.
Hlášení problémů
Pokud chcete nahlásit problémy NuGet, navštivte stránku https://github.com/nuget/home/issues.