Bagikan melalui


Masalah yang Diketahui dengan NuGet

Ini adalah masalah yang paling umum diketahui dengan NuGet yang berulang kali dilaporkan. Jika Anda mengalami masalah saat menginstal NuGet atau mengelola paket, silakan lihat masalah yang diketahui ini dan resolusinya.

Catatan

Dimulai dengan NuGet 4.0, masalah yang diketahui adalah bagian dari catatan rilis masing-masing.

Pengaturan Audit NuGet mungkin tidak diterapkan dengan benar untuk proyek yang menggunakan packages.config di Visual Studio 17.10

Dukungan Audit NuGet ditambahkan untuk proyek packages.config mulai dari NuGet 6.10 dan Visual Studio 17.10. Informasi tentang cara mengonfigurasi Audit NuGet dapat ditemukan di dokumen kami pada dokumen kami pada paket audit.

Masalah:

Jika dua proyek atau lebih menggunakan packages.config dalam solusi menggunakan nama proyek yang sama, maka Audit NuGet akan memilih satu dan menggunakan pengaturan Audit NuGet yang sama untuk kedua proyek.

Masalah pelacakan untuk menghapus batasan ini tersedia di GitHub.

Solusi:

Jika semua proyek dengan nama yang sama menggunakan nilai konfigurasi yang sama, maka tidak akan ada perbedaan fungsi saat NuGet memulihkan satu proyek menggunakan konfigurasi proyek yang berbeda.

NuGet.exe tidak memiliki batasan ini, sehingga Anda dapat mengunduh NuGet.exe dan menjalankan NuGet.exe restore solusi Anda untuk melihat apakah peringatan Audit NuGet berbeda pada baris perintah dengan apa yang dilaporkan Visual Studio.

Jika layak untuk mengganti nama proyek sehingga mereka memiliki nama proyek yang berbeda, skenario masalah ini tidak akan ditemui.

Masalah autentikasi dengan umpan NuGet di VSTS dengan nuget.exe v3.4.3

Masalah:

Ketika kita menggunakan perintah berikut untuk menyimpan kredensial, kita akhirnya mengenkripsi ganda Token Akses Pribadi.

$PAT = "Token akses pribadi Anda" $Feed = "Url Anda" .\nuget.exe sumber menambahkan -Name Test -Source $Feed -UserName $UserName -Password $PAT

Solusi:

Simpan kata sandi dalam teks yang jelas menggunakan opsi -StorePasswordInClearText .

Kesalahan saat menginstal paket dengan NuGet 3.4, 3.4.1

Masalah:

Di NuGet 3.4 dan 3.4.1, saat menggunakan add-in NuGet, tidak ada sumber yang dilaporkan sebagai tersedia dan Anda tidak dapat menambahkan sumber baru di jendela konfigurasi. Hasilnya mirip dengan gambar di bawah ini:

Konfigurasi NuGet tanpa sumber

File NuGet.Config di folder (Windows) atau ~/.nuget/ (Mac/Linux) Anda %AppData%\NuGet\ tidak sengaja telah dikosongkan. Untuk memperbaikinya: tutup Visual Studio (di Windows, jika berlaku), hapus NuGet.Config file, dan coba operasi lagi. NuGet menghasilkan yang baru NuGet.Config dan Anda harus dapat melanjutkan.

Kesalahan saat menginstal paket dengan NuGet 2.7

Masalah:

Di NuGet 2.7 atau lebih tinggi, ketika Anda mencoba menginstal paket apa pun yang berisi referensi perakitan, Anda mungkin menerima pesan kesalahan "String input tidak dalam format yang benar.", seperti di bawah ini:

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

Ini disebabkan oleh pustaka jenis untuk VSLangProj.dll komponen COM yang tidak terdaftar pada sistem Anda. Ini dapat terjadi, misalnya, ketika Anda memiliki dua versi Visual Studio yang diinstal berdampingan dan Anda kemudian menghapus instalan versi yang lebih lama. Melakukannya mungkin secara tidak sengaja membatalkan pendaftaran pustaka COM di atas.

Solusi::

Jalankan perintah ini dari prompt yang ditinggikan untuk mendaftarkan ulang pustaka jenis untukVSLangProj.dll

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

Jika perintah gagal, periksa untuk melihat apakah file ada di lokasi tersebut.

Untuk informasi selengkapnya tentang kesalahan ini, lihat ini [work item](https://nuget.codeplex.com/workitem/3609 "Work item 3609").

Kegagalan build setelah pembaruan paket di VS 2012

Masalahnya: Anda menggunakan VS 2012 RTM. Saat memperbarui paket NuGet, Anda mendapatkan pesan ini: "Satu atau beberapa paket tidak dapat diselesaikan dihapus." dan Anda diminta untuk memulai ulang Visual Studio. Setelah VS di-restart, Anda mendapatkan kesalahan build yang aneh.

Penyebabnya adalah bahwa file tertentu dalam paket lama dikunci oleh proses MSBuild latar belakang. Bahkan setelah VS dimulai ulang, proses MSBuild latar belakang masih menggunakan file dalam paket lama, menyebabkan kegagalan build.

Perbaikannya adalah menginstal Pembaruan VS 2012, misalnya VS 2012 Update 2.

Meningkatkan ke NuGet terbaru dari versi yang lebih lama menyebabkan kesalahan verifikasi tanda tangan

Jika Anda menjalankan VS 2010 SP1, Anda mungkin mengalami pesan kesalahan berikut saat mencoba meningkatkan NuGet jika Anda memiliki versi lama yang terinstal.

Alat Penginstal Ekstensi Visual Studio

Saat melihat log, Anda mungkin melihat penyebutan SignatureMismatchException.

Untuk mencegah hal ini terjadi, ada perbaikan Visual Studio 2010 SP1 yang dapat Anda instal. Atau, solusinya adalah hanya menghapus instalan NuGet (saat menjalankan Visual Studio sebagai Administrator) dan kemudian menginstalnya dari Vs Extension Gallery. Lihat https://support.microsoft.com/kb/2581019 untuk informasi lebih lanjut.

Konsol Manajer Paket memberikan pengecualian saat Add-In Visual Studio Reflektor juga diinstal.

Saat menjalankan konsol Manajer Paket, Anda mungkin mengalami pesan pengecualian berikut jika Anda menginstal Add-in 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

or

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)

Kami telah menghubungi penulis add-in dengan harapan menyelesaikan resolusi.

Pembaruan: Kami telah memverifikasi bahwa versi terbaru Reflector, 6.5, tidak lagi menyebabkan pengecualian ini di konsol.

Membuka Konsol Manajer Paket gagal dengan pengecualian ObjectSecurity

Anda mungkin melihat kesalahan ini saat mencoba membuka Konsol Manajer Paket:

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.

Jika demikian, ikuti solusi yang dibahas di StackOverflow untuk memperbaikinya.

Dialog Tambahkan Referensi Pustaka Paket melemparkan pengecualian jika solusi berisi Proyek InstallShield Limited Edition

Kami telah mengidentifikasi bahwa jika solusi Anda berisi satu atau beberapa proyek InstallShield Limited Edition, dialog Tambahkan Referensi Pustaka Paket akan melemparkan pengecualian saat dibuka. Saat ini belum ada solusi kecuali menghapus proyek InstallShield atau membongkarnya.

Hapus instalan Tombol Berwarna Abu-abu? NuGet Memerlukan Hak Istimewa Admin untuk Menginstal/Menghapus Instalasi

Jika Anda mencoba menghapus instalan NuGet melalui Visual Studio Extension Manager, Anda mungkin melihat bahwa tombol Hapus instalasi dinonaktifkan. NuGet memerlukan akses admin untuk menginstal dan menghapus instalasi. Luruskan kembali Visual Studio sebagai administrator untuk menghapus instalan ekstensi. NuGet tidak memerlukan akses admin untuk menggunakannya.

Konsol Manajer Paket mengalami crash saat saya membukanya di Windows XP. Apa yang salah?

NuGet memerlukan runtime Powershell 2.0. Windows XP, secara default, tidak memiliki Powershell 2.0. Anda dapat mengunduh runtime Powershell 2.0 dari Unduhan PowerShell 2.0. Setelah menginstalnya, mulai ulang Visual Studio dan Anda akan dapat membuka Package Manager Console.

Visual Studio 2010 SP1 Beta mengalami crash saat keluar jika Konsol Manajer Paket terbuka.

Jika Anda telah menginstal Visual Studio 2010 SP1 Beta, Anda mungkin melihat bahwa jika Anda membiarkan Konsol Manajer Paket terbuka dan menutup Visual Studio, itu akan crash. Ini adalah masalah yang diketahui dari Visual Studio dan akan diperbaiki dalam rilis SP1 RTM. Untuk saat ini, abaikan saja crash atau hapus instalan SP1 Beta jika Anda bisa.

Elemen 'metadata' ... terjadi pengecualian elemen turunan yang tidak valid

Jika Anda menginstal paket yang dibangun dengan nuGet versi pra-rilis, Anda mungkin mengalami pesan kesalahan yang menyatakan "Elemen 'metadata' di namespace 'schemas.microsoft.com/packaging/2010/07/nuspec.xsd' memiliki elemen turunan yang tidak valid" saat menjalankan versi RTM NuGet dengan proyek tersebut. Anda perlu menghapus instalan lalu menginstal ulang setiap paket menggunakan versi RTM NuGet.

Mencoba menginstal atau menghapus instalasi menghasilkan kesalahan "Tidak dapat membuat file ketika file tersebut sudah ada."

Untuk beberapa alasan, ekstensi Visual Studio bisa berada dalam keadaan aneh di mana Anda telah menghapus instalan ekstensi VSIX, tetapi beberapa file tertinggal. Untuk mengatasi masalah ini:

  1. Keluar dari Visual Studio

  2. Buka folder berikut (mungkin ada di drive yang berbeda pada komputer Anda)

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

  3. Hapus semua file dengan ekstensi .deleteme .

  4. Buka kembali Visual Studio

Setelah mengikuti langkah-langkah ini, Anda harus dapat melanjutkan.

Dalam kasus yang jarang terjadi, mengkompilasi dengan Analisis Kode diaktifkan menyebabkan kesalahan.

Anda mungkin mendapatkan kesalahan berikut jika menginstal FluentNHibernate dengan konsol Package Manager lalu mengkompilasi proyek Anda dengan "Analisis Kode" diaktifkan.

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

Secara default, FluentNHibernate memerlukan NHibernate 3.0.0.2001. Namun, secara desain NuGet akan menginstal NHibernate 3.0.0.4000 dalam proyek Anda dan menambahkan pengalihan pengikatan yang sesuai sehingga akan berfungsi. Proyek Anda akan dikompilasi dengan baik jika analisis kode tidak diaktifkan. Berbeda dengan kompilator, alat analisis kode tidak mengikuti pengalihan pengikatan dengan benar untuk menggunakan 3.0.0.4000 alih-alih 3.0.0.2001. Anda dapat mengatasi masalah ini dengan menginstal NHibernate 3.0.0.2001 atau memberi tahu alat analisis kode untuk bertindak sama dengan pengkompilasi dengan melakukan hal berikut:

  1. Buka %PROGRAMFILES%\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop
  2. Buka FxCopCmd.exe.config dan ubah AssemblyReferenceResolveMode dari StrongName ke StrongNameIgnoringVersion.
  3. Simpan perubahan dan bangun kembali proyek Anda.

Perintah Write-Error tidak berfungsi di dalam install.ps1/uninstall.ps1/init.ps1

Ini adalah masalah yang sudah diketahui. Alih-alih memanggil Write-Error, coba panggil throw.

throw "My error message"

Menginstal NuGet dengan akses terbatas di Windows 2003 dapat merusak Visual Studio

Saat mencoba menginstal NuGet menggunakan Visual Studio Extension Manager dan tidak berjalan sebagai administrator, dialog "Jalankan Sebagai" ditampilkan dengan kotak centang berlabel "Jalankan program ini dengan akses terbatas" dicentang secara default.

Jalankan Sebagai Dialog Terbatas

Mengklik OK dengan yang diperiksa crash Visual Studio. Pastikan untuk menghapus centang opsi tersebut sebelum menginstal NuGet.

Tidak dapat menghapus instalan NuGet untuk Alat Windows Phone

Windows Phone Tools tidak memiliki dukungan untuk Visual Studio Extension Manager. Untuk menghapus instalan NuGet, jalankan perintah berikut.

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

Mengubah kapitalisasi ID paket NuGet memutus pemulihan paket

Seperti yang dibahas panjang lebar tentang masalah GitHub ini, mengubah kapitalisasi paket NuGet dapat dilakukan oleh dukungan NuGet, tetapi menyebabkan komplikasi selama pemulihan paket untuk pengguna yang memiliki paket yang ada, berkapasitas berbeda, di folder paket global mereka. Sebaiknya hanya meminta perubahan kasus saat Anda memiliki cara untuk berkomunikasi dengan pengguna paket Anda yang ada tentang jeda yang mungkin terjadi pada pemulihan paket build-time mereka.

Melaporkan masalah

Untuk melaporkan masalah NuGet, kunjungi https://github.com/nuget/home/issues.