Sdílet prostřednictvím


Známé problémy s NuGetem

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 se nemusí správně použít 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, pak NuGet Audit vybere 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 liší na příkazovém řádku s tím, 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 v informačních kanálech 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 add -Name Test -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:

Konfigurace NuGet bez zdrojů

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ě zrušit registrace výše uvedené knihovny MODELU COM.

Ř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 v tomto [work item](https://nuget.codeplex.com/workitem/3609 "Work item 3609")tématu .

Selhání sestavení 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.

Instalační program rozšíření sady Visual Studio

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 v tématu https://support.microsoft.com/kb/2581019.

konzola Správce balíčků vyvolá výjimku při instalaci doplňku Reflector Visual Studio.

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)) ---&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)

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 s výjimkou 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í.

Tlačítko Odinstalovat šedě? 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 modul runtime PowerShellu 2.0. Windows XP ve výchozím nastavení nemá PowerShell 2.0. Modul runtime PowerShellu 2.0 si můžete stáhnout z PowerShellu 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 se při spuštění verze NuGetu v daném projektu zobrazit chybová zpráva "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. Náhradní řešení tohoto problému:

  1. Ukončení sady Visual Studio

  2. 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 Správce balíčků< version>\

  3. Odstraňte všechny soubory s příponou .deleteme .

  4. 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 v projektu a přidá příslušné vazby přesměrování tak, aby fungoval. Projekt se zkompiluje jenom v případě, že není zapnutá analýza kódu. Na rozdíl od kompilátoru nástroj pro analýzu kódu neodpovídá přesměrování vazby tak, aby místo 3.0.4000 místo 3.0.0.0.2001 používal 3.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:

  1. Přejděte na %PROGRAMFILES%\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop
  2. Otevřete soubor FxCopCmd.exe.config a přejděte AssemblyReferenceResolveMode na StrongNameStrongNameIgnoringVersion.
  3. 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í chyby zápisu zkuste zavolat vyvolání.

throw "My error message"

Instalace NuGetu s omezeným přístupem ve Windows 2003 může dojít k chybovému ukončení sady Visual Studio

Při pokusu o instalaci NuGet pomocí Správce rozšíření sady Visual Studio a neběží jako správce, zobrazí se dialogové okno Spustit jako se zaškrtávacím zaškrtávacím políčkam "Spustit tento program s omezeným přístupem" zaškrtnuté ve výchozím nastavení.

Dialogové okno Spustit jako s omezeným přístupem

Kliknutím na OK se kontrolou dojde k chybovému ukončení sady Visual Studio. Před instalací NuGet nezapomeňte zrušit zaškrtnutí této možnosti.

Nejde odinstalovat NuGet pro nástroje pro 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 popsáno na tomto problému GitHubu, změnu velkých písmen balíčků NuGet může provést podpora NuGetu, ale způsobuje komplikace při obnovování balíčků pro uživatele, kteří mají existující, různě velké a velké balíčky ve složce globálních balíčků. Pokud máte možnost komunikovat se stávajícími uživateli balíčku o přerušení, ke kterému může dojít při obnovení balíčku v době sestavení, doporučujeme požádat pouze o změnu případu.

Hlášení problémů

Pokud chcete nahlásit problémy NuGet, navštivte stránku https://github.com/nuget/home/issues.