NuGet ile İlgili Bilinen Sorunlar

Bunlar, NuGet ile ilgili sürekli olarak bildirilen en yaygın bilinen sorunlardır. NuGet'i yüklerken veya paketleri yönetirken sorun yaşıyorsanız lütfen bu bilinen sorunlara ve bunların çözümlerine göz atın.

Not

NuGet 4.0'dan başlayarak, bilinen sorunlar ilgili sürüm notlarının bir parçasıdır.

Visual Studio 17.10'da packages.config kullanan projeler için NuGet Denetimi ayarları doğru uygulanamayabilir

NuGet 6.10 ve Visual Studio 17.10'dan başlayarak packages.config projeleri için NuGet Denetimi desteği eklendi. NuGet Denetimini yapılandırma hakkında bilgi, denetim paketleriyle ilgili belgelerimizdeki belgelerimizde bulunabilir.

Sorun:

Çözümde packages.config kullanan iki veya daha fazla proje aynı proje adını kullanıyorsa, NuGet Denetimi bir tane seçer ve her iki proje için de aynı NuGet Denetimi ayarlarını kullanır.

Bu sınırlamayı kaldırmaya yönelik izleme sorunu GitHub'da kullanılabilir.

Geçici çözüm:

Aynı ada sahip tüm projeler aynı yapılandırma değerlerini kullanıyorsa, NuGet farklı bir projenin yapılandırmasını kullanarak bir projeyi geri yüklediğinde işlevsel bir fark olmayacaktır.

NuGet.exe bu sınırlamaya sahip olmadığından, NuGet.exe indirip çözümünüzde çalıştırarak NuGet.exe restore Komut satırındaKi NuGet Denetimi uyarılarının Visual Studio'daki rapora göre farklı olup olmadığını görebilirsiniz.

Projeleri farklı proje adlarına sahip olacak şekilde yeniden adlandırmak mümkünse, bu sorun senaryosuyla karşılaşılmaz.

nuget.exe v3.4.3 ile VSTS'de NuGet akışlarıyla ilgili kimlik doğrulama sorunları

Sorun:

Kimlik bilgilerini depolamak için aşağıdaki komutu kullandığımızda, Kişisel Erişim Belirtecini iki kez şifreleriz.

$PAT = "Kişisel erişim belirteciniz" $Feed = "Url'niz" .\nuget.exe kaynaklar -Name Test -Source $Feed -UserName $UserName -Password $PAT

Geçici çözüm:

-StorePasswordInClearText seçeneğini kullanarak parolaları düz metinde depolayın.

NuGet 3.4, 3.4.1 ile paketleri yükleme hatası

Sorun:

NuGet 3.4 ve 3.4.1'de NuGet eklentisi kullanılırken kullanılabilir kaynak bildirilmemiştir ve yapılandırma penceresine yeni kaynaklar ekleyemezsiniz. Sonuç aşağıdaki görüntüye benzer:

Kaynaksız NuGet yapılandırması

NuGet.Config(Windows) veya ~/.nuget/ (Mac/Linux) klasörünüzdeki %AppData%\NuGet\ dosya yanlışlıkla boşaltıldı. Bunu düzeltmek için: Visual Studio'yu kapatın (varsa Windows'ta), dosyayı silin NuGet.Config ve işlemi yeniden deneyin. NuGet yeni NuGet.Config bir oluşturdu ve devam edebilmeniz gerekir.

NuGet 2.7 ile paketleri yükleme hatası

Sorun:

NuGet 2.7 veya üzeri sürümlerde, derleme başvuruları içeren herhangi bir paketi yüklemeye çalıştığınızda, aşağıdaki gibi "Giriş dizesi doğru biçimde değildi" hata iletisini alabilirsiniz:

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

Bunun nedeni, COM bileşeninin tür kitaplığının VSLangProj.dll sisteminizde kaydının kaldırılmış olmasıdır. Bu durum, örneğin yan yana iki Visual Studio sürümünü yükledikten sonra eski sürümü kaldırdığınızda gerçekleşebilir. Bunu yapmak, yukarıdaki COM kitaplığının kaydını yanlışlıkla kaldırabilir.

Çözüm::

Tür kitaplığını yeniden kaydetmek için bu komutu yükseltilmiş bir istemden çalıştırın VSLangProj.dll

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

Komut başarısız olursa dosyanın bu konumda mevcut olup olmadığını denetleyin.

Bu hata hakkında daha fazla bilgi için bu [work item](https://nuget.codeplex.com/workitem/3609 "Work item 3609")bölümüne bakın.

VS 2012'de paket güncelleştirmesinin ardından derleme hatası

Sorun: VS 2012 RTM kullanıyorsunuz. NuGet paketlerini güncelleştirirken şu iletiyi alırsınız: "Bir veya daha fazla paket kaldırılamadı." ve Visual Studio'yu yeniden başlatmanız istenir. VS yeniden başlatıldıktan sonra garip derleme hataları alırsınız.

Bunun nedeni, eski paketlerdeki bazı dosyaların bir arka plan MSBuild işlemi tarafından kilitlenmesidir. VS yeniden başlatıldıktan sonra bile, arka plan MSBuild işlemi eski paketlerdeki dosyaları kullanmaya devam eder ve derleme hatalarına neden olur.

Bu düzeltme, VS 2012 Güncelleştirmesi,örneğin VS 2012 Güncelleştirme 2'yi yüklemektir.

Eski bir sürümden en son NuGet'e yükseltme, imza doğrulama hatasına neden oluyor

VS 2010 SP1 çalıştırıyorsanız, eski bir sürümünüz yüklüyse NuGet'i yükseltmeye çalışırken aşağıdaki hata iletisiyle karşılaşabilirsiniz.

Visual Studio Uzantı Yükleyicisi

Günlükleri görüntülerken bir bahsetme SignatureMismatchExceptiongörebilirsiniz.

Bunun oluşmasını önlemek için, yükleyebileceğiniz bir Visual Studio 2010 SP1 düzeltmesi vardır. Alternatif olarak geçici çözüm, NuGet'i kaldırmak (Visual Studio'yu Yönetici olarak çalıştırırken) ve ardından VS Uzantısı Galerisi'nden yüklemektir. Daha fazla bilgi edinmek için bkz. https://support.microsoft.com/kb/2581019.

Paket Yöneticisi Konsolu, Reflector Visual Studio Eklentisi de yüklendiğinde bir özel durum oluşturur.

Paket Yöneticisi konsolunu çalıştırırken, Reflector VS Eklentisi yüklüyse aşağıdaki özel durum iletisiyle karşılaşabilirsiniz.

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

veya

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)

Bir çözüm üzerinde çalışma umuduyla eklentinin yazarıyla iletişime geçtik.

Güncelleştirme: Reflektör 6.5'in en son sürümünün artık konsolda bu özel duruma neden olmadığını doğruladık.

Paket Yöneticisi Konsolu açılırken ObjectSecurity özel durumuyla başarısız oluyor

Paket Yöneticisi Konsolunu açmaya çalışırken şu hataları görebilirsiniz:

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.

Bu durumda, StackOverflow'da açıklanan çözümü izleyerek bunları düzeltin.

Çözüm InstallShield Sınırlı Sürüm Projesi içeriyorsa Paket Kitaplığı Başvurusu Ekle iletişim kutusu bir özel durum oluşturur

Çözümünüz bir veya daha fazla InstallShield Limited Edition projesi içeriyorsa Paket Kitaplığı Başvurusu Ekle iletişim kutusunun açıldığında bir özel durum oluşturacağını belirledik. Şu anda InstallShield projelerini kaldırma veya kaldırma dışında bir geçici çözüm yoktur.

Kaldır düğmesi gri mi? NuGet Yüklemek/Kaldırmak için Yönetici Ayrıcalıkları Gerektirir

NuGet'i Visual Studio Uzantı Yöneticisi aracılığıyla kaldırmaya çalışırsanız Kaldır düğmesinin devre dışı bırakıldığını fark edebilirsiniz. NuGet,yüklemek ve kaldırmak için yönetici erişimi gerektirir. Uzantıyı kaldırmak için Visual Studio'yu yönetici olarak yeniden başlatın. NuGet, kullanmak için yönetici erişimi gerektirmez.

windows XP'de açtığımda Paket Yöneticisi Konsolu kilitleniyor. Ne oldu?

NuGet için PowerShell 2.0 çalışma zamanı gerekir. Windows XP'de varsayılan olarak PowerShell 2.0 yoktur. PowerShell 2.0 çalışma zamanını PowerShell 2.0 İndir'den indirebilirsiniz. Yükledikten sonra Visual Studio'yu yeniden başlatın ve Paket Yöneticisi Konsolu'nu açabilmeniz gerekir.

Paket Yöneticisi Konsolu açıksa Visual Studio 2010 SP1 Beta çıkışta kilitleniyor.

Visual Studio 2010 SP1 Beta'yı yüklediyseniz, Paket Yöneticisi Konsolu'nu açık bırakıp Visual Studio'yu kapatırsanız, kilitleneceğini fark edebilirsiniz. Bu, Visual Studio'nun bilinen bir sorunudur ve SP1 RTM sürümünde düzeltilecektir. Şimdilik, kilitlenmeyi yoksayabilir veya sp1 Beta'yı kaldırabilirsiniz.

'metadata' öğesi ... geçersiz alt öğe özel durumu oluşuyor

NuGet'in yayın öncesi sürümüyle oluşturulmuş paketler yüklediyseniz, bu projeyle NuGet'in RTM sürümünü çalıştırırken "'schemas.microsoft.com/packaging/2010/07/nuspec.xsd' ad alanında 'meta veri' öğesi geçersiz alt öğe içeriyor" hata iletisiyle karşılaşabilirsiniz. NuGet'in RTM sürümünü kullanarak her paketi kaldırıp yeniden yüklemeniz gerekir.

Yüklemeye veya kaldırmaya çalışıldığında "Bu dosya zaten mevcut olduğunda dosya oluşturulamıyor" hatasıyla sonuçlanır.

Bazı nedenlerden dolayı Visual Studio uzantıları, VSIX uzantısını kaldırdığınız ancak bazı dosyaların geride bırakıldığı garip bir duruma gelebilir. Bu soruna geçici bir çözüm olarak:

  1. Visual Studio'dan çıkma

  2. Aşağıdaki klasörü açın (makinenizdeki farklı bir sürücüde olabilir)

    C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft Corporation\NuGet Paket Yöneticisi< version>\

  3. .deleteme uzantılı tüm dosyaları silin.

  4. Visual Studio'yu yeniden açma

Bu adımları takip ettikten sonra devam edebilmeniz gerekir.

Nadir durumlarda, Kod Analizi açıkken derlemek hataya neden olur.

FluentNHibernate uygulamasını Paket Yöneticisi konsoluyla yükler ve ardından projenizi "Kod Analizi" açık olarak derlerseniz aşağıdaki hatayı alabilirsiniz.

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

FluentNHibernate varsayılan olarak NHibernate 3.0.0.2001 gerektirir. Ancak, tasarım gereği NuGet projenize NHibernate 3.0.0.4000 yükler ve çalışması için uygun bağlama yeniden yönlendirmelerini ekler. Kod analizi açık değilse projeniz sorunsuz bir şekilde derlenir. Derleyicinin aksine, kod çözümleme aracı bağlama yeniden yönlendirmelerini düzgün bir şekilde izleyerek 3.0.0.2001 yerine 3.0.0.4000 kullanmaz. NHibernate 3.0.0.2001'i yükleyerek veya kod çözümleme aracına aşağıdakileri yaparak derleyiciyle aynı şekilde davranmasını bildirerek sorunu geçici olarak çözebilirsiniz:

  1. %PROGRAMFILES%\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop konumuna gidin
  2. FxCopCmd.exe.config dosyasını açın ve olarak StrongNameStrongNameIgnoringVersiondeğiştirinAssemblyReferenceResolveMode.
  3. Değişikliği kaydedin ve projenizi yeniden oluşturun.

Write-Error komutu install.ps1/uninstall.ps1/init.ps1 içinde çalışmıyor

Bu bilinen bir sorundur. Write-Error çağrısı yerine throw çağrısı yapmayı deneyin.

throw "My error message"

Windows 2003'te kısıtlı erişimle NuGet'i yüklemek Visual Studio'yu kilitleyebilir

Visual Studio Uzantı Yöneticisi'ni kullanarak NuGet'i yüklemeye çalışırken ve yönetici olarak çalışmadığında, varsayılan olarak "Bu programı kısıtlı erişimle çalıştır" etiketli onay kutusu işaretli olarak "Farklı Çalıştır" iletişim kutusu görüntülenir.

Kısıtlanmış Olarak Çalıştır İletişim Kutusu

İşaretlenen ile Tamam'a tıklanması Visual Studio'yu kilitler. NuGet'i yüklemeden önce bu seçeneğin işaretini kaldırdığından emin olun.

Windows Phone Araçları için NuGet kaldırılamıyor

Windows Phone Araçları' nın Visual Studio Uzantı Yöneticisi desteği yoktur. NuGet'i kaldırmak için aşağıdaki komutu çalıştırın.

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

NuGet paket kimliklerinin büyük harfe çevirmesinin değiştirilmesi paket geri yüklemesini bozuyor

Bu GitHub sorunu üzerinde ayrıntılı olarak açıklandığı gibi, NuGet paketlerinin büyük harfe dönüştürülmesi NuGet desteği tarafından yapılabilir, ancak genel paketler klasöründe mevcut, farklı durumlu paketleri olan kullanıcılar için paket geri yükleme sırasında karmaşıklıklara neden olur. Yalnızca paketinizin mevcut kullanıcılarıyla derleme zamanı paketi geri yüklemelerinde ortaya çıkabilecek kesme hakkında iletişim kurmanın bir yolunuz olduğunda bir durum değişikliği istemenizi öneririz.

Raporlama sorunları

NuGet sorunlarını bildirmek için adresini ziyaret edin https://github.com/nuget/home/issues.