Tidak dapat menginstal paket nuget karena "Gagal menginisialisasi host PowerShell"

173

Tiba-tiba, saya mendapatkan kesalahan ini saat memutakhirkan paket Nuget. Tidak ada perbaikan yang saya temui saat bekerja. Saya menggunakan Visual Studio 2013.

'Newtonsoft.Json 6.0.3' sudah diinstal.

Menambahkan 'Newtonsoft.Json 6.0.3' ke Turnamen. Pemberitahuan.

Berhasil menambahkan 'Newtonsoft.Json 6.0.3' ke Turnamen. Pemberitahuan.

Menjalankan file skrip 'F: \ My Webs \ BasketballTournaments \ MainBranch \ Packages \ Newtonsoft.Json.6.0.3 \ tools \ install.ps1'.

Gagal menginisialisasi host PowerShell. Jika pengaturan kebijakan eksekusi PowerShell Anda diatur ke AllSigned, buka Package Manager Console untuk menginisialisasi host terlebih dahulu.

Paket Pengelola Konsol

Mencoba melakukan operasi InitializeDefaultDrives pada penyedia 'FileSystem' gagal.

Jika saya menunggu inisialisasi selesai di konsol saya dapat menambahkan beberapa paket.

Mike Flynn
sumber
Hai Mike. Saya memiliki masalah yang sama persis. Sudahkah Anda berhasil menyelesaikan masalah dan Anda memiliki pengelola paket nuget yang berfungsi?
Magnus Backeus
Saya memiliki masalah yang sama. Saya sudah menetapkan kebijakan eksekusi Powershell menjadi Tidak Terbatas, tetapi tidak membantu. Saya menginstal paket di Package Manager Console tidak ada masalah.
Adamy
5
Baru saja mengalami masalah yang sama. Solusi ini telah membantu saya: stackoverflow.com/questions/10457039/...
Oleksii Aza
1
Saya memiliki kesalahan yang sama pada Windows 10. Saya harus mengaktifkan Powershell 2.0 dari "program dan fitur"> "Mengaktifkan atau menonaktifkan Fitur Windows" dan kemudian semuanya bekerja dengan baik setelah memulai kembali studio visual.
kuda pacuan ganda

Jawaban:

193

Menetapkan kebijakan eksekusi ke RemoteSigned atau Unrestricted harus berfungsi. Itu harus diubah di bawah mode administrator melalui konsol PowerShell. Perlu diketahui bahwa perubahan akan diterapkan sesuai dengan versi bit dari konsol PowerShell, jadi 32bit atau 64 bit. Jadi jika Anda ingin menginstal paket dalam Visual Studio (versi 32 bit) yang memerlukan kebijakan khusus, Anda harus mengubah pengaturan kebijakan melalui PowerShell (x86).

Perintah di PowerShell (sebagai administrator) untuk mengatur kebijakan menjadi tidak dibatasi (seperti yang dicatat oleh @Gabriel dalam komentar) adalah:

start-job { Set-ExecutionPolicy Unrestricted } -RunAs32 | wait-job | Receive-Job

Setelah menyetel kebijakan ke tidak dibatasi, Anda akan ingin mengatur kebijakan kembali ke aslinya setelah instalasi selesai.

jellonek
sumber
83
Bekerja untukku. Ketika Anda mengubah ExecutionPolicy di PowerShell pada sistem 64 bit, itu hanya akan mengubahnya untuk versi 64 bit PowerShell. Tetapi VS adalah proses 32 bit dan "Package Manager Console" juga merupakan proses 32 bit. Untuk memperbaikinya, Anda dapat menjalankan start-job { Set-ExecutionPolicy Unrestricted } -RunAs32 | wait-job | Receive-Jobkonsol PowerShell 64 bit.
Gabriel
69
Anda harus me-restart Visual Studio sesudahnya.
Danny Varod
Bekerja dengan baik. Sayang sekali paket itu sendiri menyarankan solusi yang tidak bekerja. Dan jangan lupa untuk mengaktifkan kebijakan aslinya setelah itu.
Mohoch
9
Tutup VS 2013, jalankan sebagai admin, mulai bekerja dengan baik ... wiered
Rusty
9
Saya punya masalah ini di VS2015 dan hanya memperbarui manajer paket NuGet menyelesaikan masalah
Shawson
55

Ingatlah untuk me-restart Visual Studio setelah Anda melakukan Set-ExecutionPolicy Unrestricteddi PowerShell (x86).

Jika itu tidak berhasil, coba Set-ExecutionPolicy RemoteSigneddi PowerShell (x86) kemudian restart Visual Studio.

Sirar Salih
sumber
51

Secara default, eksekusi skrip PowerShell sangat terbatas karena alasan keamanan. Untuk digunakan dalam NuGet kita perlu membuka pintu.

1. Langkah

Buka Windows PowerShell, jalankan sebagaiAdministrator

2. Langkah

NuGet menggunakan konsol 32 bit, sehingga tidak akan terpengaruh oleh perubahan pada konsol 64 bit. Jalankan skrip berikut untuk memastikan Anda mengkonfigurasi konsol 32 bit.

start-job { Set-ExecutionPolicy RemoteSigned } -RunAs32 | wait-job | Receive-Job

3. Langkah

Mengulang kembali Visual Studio

Michael Sander
sumber
Terima kasih! Hanya ketika saya melakukan perintah powershell windows seperti yang Anda nyatakan berhasil. Terima kasih banyak!
Echiban
Ini berfungsi untuk lingkungan berikut: windows xp, visual studio 2010 pengembang Web express. Saya menutup studio visual. Diunduh microsoft.com/en-us/download/confirmation.aspx?id=16818 Powershell. Powershell Terpasang. Jalankan PowerShell dan jalankan start-job {Set-ExecutionPolicy RemoteSigned} -RunAs32 | tunggu-kerja | Terima-Pekerjaan. Memulai studio visual dan nuget bekas. Itu berhasil.
Pengembang Marius Žilėnas
1
@muflix: tidak mungkin dalam kasus itu, setidaknya saya tidak akan tahu caranya. Pada akhirnya ini adalah masalah keamanan dan karenanya diserahkan kepada administrator
Michael Sander
apakah kita perlu menutup pintu setelahnya? bagaimana?
Omid-RH
menutupnya akan membuat nuget tidak dapat dioperasikan karena perlu mengeksekusi skrip selama instalasi paket
Michael Sander
25

Saya memiliki masalah yang sama dengan dialog Kelola Paket NuGet, saya menggunakan solusi yang dapat membantu orang lain - berjalan dari konsol manajer paket:

Jika saya menggunakan paket perintah commandhell ​​menginstal installlet paket, semuanya baik-baik saja.

Saya menentang mengubah pengaturan keamanan "hanya untuk membuatnya bekerja".

Allan
sumber
Anda harus mengajukan pertanyaan baru.
Tay2510
3
Saya tidak berpikir ini memerlukan pertanyaan baru karena langsung berhubungan dengan masalah yang diangkat. Saya menulis ulang pos agar tidak terdengar seperti pertanyaan baru tetapi renungan dari pengembang yang tidak puas.
Allan
@ Allan Akhir dari jawaban ini (post-edit) harus berupa komentar atau pertanyaan.
Danny Varod
Terima kasih atas masukan Anda Danny, saya berharap untuk berbagi pengalaman dan kemungkinan penyelesaian bagi orang-orang yang tidak ingin atau tidak dapat mengubah pengaturan keamanan. Jawabannya memang membaca lebih baik sekarang.
Allan
Get-Package -Filter PartOfPackageNameuntuk mencari melalui paket yang diinstal, Install-Package PackageName -Version 7.0.1untuk menginstal versi paket tertentu. Jangan lupa untuk memilih Proyek Default di bagian atas Package Manager Console
Lu55
24

Tidak ada jawaban yang berhasil untuk saya.

Semua kebijakan sudah benar tetapi saya memiliki kesalahan saat menginstal paket

Gagal menginisialisasi host PowerShell. Jika pengaturan kebijakan eksekusi PowerShell Anda diatur ke AllSigned, buka Package Manager Console untuk menginisialisasi host terlebih dahulu.

The solusi : Saya telah dihapus tersebut nuget manajer paket Plugin dan diinstal ulang itu.

Pasukan
sumber
4
Menghapus dan menginstal ulang adalah satu-satunya hal yang memang membantu. Masalah ini juga dijelaskan di sini: github.com/NuGet/Home/issues/974
Zsolt
2
Saya menginstal ulang paket NuGet VSIX tanpa menghapusnya terlebih dahulu, yang menyelesaikan masalah.
Dave
+1 marketplace.visualstudio.com/... untuk VS2015
hoang
16

Menjalankan Visual Studio saat Administrator bekerja untuk saya.

Sudhir
sumber
1
Ditto, meskipun orang harus ingat untuk menutup VS setelah paket Anda diinstal, dan buka kembali di bawah izin reguler.
Liam Laverty
7

Saya mengalami masalah ini dengan Visual Studio 2015. Saya mencopot dan menginstal ulang NuGet Package Manager lagi. Ini berhasil untuk saya.

Henry.K
sumber
Bagaimana? Itu mengeluh itu sedang digunakan oleh proses lain
Brandon
7

Saya memperbarui manajer paket Nuget dan memperbaikinya untuk saya.

DeclanMcD
sumber
6

Ini mulai terjadi dengan 6.0.4 baru-baru ini bagi saya, saya tidak berpikir ini adalah solusi yang sangat baik tetapi inilah yang membantu saya. Tutup Visual Studio

  1. Buka prompt Windows PowerShell sebagai Administrator (sangat penting) dan jalankan perintah berikut: Set-ExecutionPolicy Bypass
  2. Buka Visual Studio, buka solusi Anda dan gunakan Nuget untuk menginstal JSON.Net (atau paket apa pun yang termasuk sebagai ketergantungan).
  3. Setelah semuanya berfungsi, saya sarankan mengatur kembali kebijakan eksekusi PowerShell untuk dibatasi dengan perintah berikut: Set-ExecutionPolicy Restricted
Goutam Singh
sumber
5

Saya memiliki masalah yang sama setelah memutakhirkan ke Windows 10.

Ini berhasil untuk saya

  1. Tutup Visual Studio
  2. Jalankan Powershell sebagai admin
  3. Lari Set-ExecutionPolicy Unrestricted
  4. Jalankan Visual studio sebagai admin
  5. Bersihkan proyek dan tambahkan paket nuget

Jika masih tidak berhasil coba edit devenv.exe.config

Visual Studio 2013: C:\Users\<UserName>\AppData\Local\Microsoft\VisualStudio\12.0

Visual Studio 2015: C:\Users\<UserName>\AppData\Local\Microsoft\VisualStudio\14.0

Tambahkan yang berikut ini

    <dependentAssembly>
        <assemblyIdentity name="System.Management.Automation" publicKeyToken="31bf3856ad364e35" />
        <publisherPolicy apply="no" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.PowerShell.Commands.Utility" publicKeyToken="31bf3856ad364e35" />
      <publisherPolicy apply="no" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.PowerShell.ConsoleHost" publicKeyToken="31bf3856ad364e35" />
      <publisherPolicy apply="no" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.PowerShell.Commands.Management" publicKeyToken="31bf3856ad364e35" />
      <publisherPolicy apply="no" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.PowerShell.Security" publicKeyToken="31bf3856ad364e35" />
      <publisherPolicy apply="no" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.PowerShell.Commands.Diagnostics" publicKeyToken="31bf3856ad364e35" />
      <publisherPolicy apply="no" />
    </dependentAssembly>
BehranG BinA
sumber
Menambahkan dependensi Powershell ke devenv.exe.configadalah satu-satunya perbaikan yang bekerja untuk saya baik di VS2013 dan VS2015. VS2013: C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\12.0VS2015: C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\14.0Apa yang tidak berhasil bagi saya adalah mengubah kebijakan eksekusi, mengubah kebijakan eksekusi dalam registri, menginstal ulang manajer paket, memperbaiki studio visual, memulai kembali studio visual, memulai kembali windows.
Rubanov
Wooooow. Semua Metode lain tidak menyelesaikannya untuk saya di VS 2015. Hanya menambahkan dependensi ke devenv.exe.config membantu. Setelah ini, saya juga menemukan stackoverflow.com/questions/12638289/… . Terima kasih banyak!!!
nharrer
4

Secara default Windows 10 64-bit saya hanya memiliki Powershell versi 1.0 diaktifkan. Saya mengubah panel kontrol / Program / Program dan fitur / Matikan fitur Windows Nyala.

Pastikan mesin Windows Powershell 2.0 diaktifkan.

Mulai ulang VS2015 dalam mode non-administrator dan dengan semua paket diinstal dengan benar.

DKrause
sumber
Saya juga memiliki Windows 10 64-bit dan saya harus mengaktifkan mesin Windows Powershell 2.0 untuk membuat Package Manager Console berfungsi. Aneh bahwa masalah ini telah ada selama beberapa waktu dan Microsoft belum mengaktifkan mesin Powershell 2.0 sebagai bagian dari proses instalasi Visual Studio 2017.
JSWilson
4

Saya memiliki masalah yang sama dengan vs2013 dan mengubah kebijakan eksekusi tidak memperbaikinya. Satu-satunya solusi yang saya temukan adalah mencopot Nuget dari VS dan menginstalnya kembali. Langkah-langkahnya ada di sini: https://stackoverflow.com/a/32619961/3853238

Doğa Benli
sumber
3

Yang perlu saya lakukan adalah me-restart Visual Studio, buka NuGet Package Manager Console, dan kemudian menggunakan Manage NuGet Packagesdialog berhasil.

Yang tak bernama
sumber
3

Tutup semua instance studio visual dan coba lagi. Ini bekerja untuk saya :)

Mohini Mhetre
sumber
3

Jika jawaban di atas tidak bekerja untuk Anda -

  1. Buka Jalankan - windows + R
  2. Buka registry editor - ketik regedit.exe
  3. Buka - HKEY_LOCAL_MACHINE \ SOFTWARE \ Kebijakan \ Microsoft \ Windows \ PowerShell
  4. Di panel kanan - Ubah "ExecutionPolicy" dan simpan "Value Data" -nya sebagai kosong.
  5. Mulai ulang studio visual Anda, Sekarang Powershell Anda dapat diinisialisasi dengan benar.
Richie Rich
sumber
2

Setelah mencoba berbagai perbaikan yang disarankan, akhirnya diselesaikan dengan memperbarui ekstensi NuGet Package Manager di Visual Studio.

Ini dilakukan di bawah Alat -> Ekstensi Dan Pembaruan, kemudian dalam dialog Ekstensi dan Pembaruan Diperbarui -> Galeri Visual Studio. Mungkin perlu me-restart Visual Studio.

Oskar Sjöberg
sumber
2

Jika Anda menggunakan VS 2013 Pembaruan 5, Anda harus menginstal pembaruan 2.8.7 secara manual untuk NuGet Packet Manager.

Laporan bug memiliki detail lebih lanjut.

Vladimir Zhukov
sumber
2

VS2015: Memperbarui NuGet dan berfungsi.

Gubi
sumber
Sama disini. Menggunakan VS2015 dan baru saja memperbarui Manajer Paket Nuget dan itu berhasil.
iheartcsharp
2

Jika tidak ada di atas yang membantu, lihat apakah Anda dapat memperbarui Visual Studio.

Saya memiliki masalah yang sama dengan Visual Studio 2017 Community ketika saya mencoba menginstal Newtonsoft.Json. ItuExecutionPolicy perubahan tidak membantu (saya mencoba menggunakan kedua PowerShell dan Registry Editor). Saya juga mencoba menghapus dan menginstal NuGet.

Setelah menjalankan file pengaturan VS2017, ia meminta pembaruan Visual Studio. Semua masalah hilang setelah pembaruan.

Tigran
sumber
1

Bagi saya pengaturan kebijakan eksekusi ke Tidak Terbatas tidak berhasil. Saya harus memperbaiki instalasi vs2013 dengan masuk ke Control Panel. Memperbaiki instalasi berhasil bagi saya.

DanKodi
sumber
1

Punya masalah yang sama dan ini menyelesaikannya untuk saya (Powershell sebagai admin):

Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\PowerShell -Name ExecutionPolicy -Value ByPass 
Sven Bardos
sumber
1

setelah mencoba semua solusi yang disarankan tidak ada yang berhasil pada pembaruan VS 2015 2

menghapus folder paket dari folder solusi dan mengembalikannya dari visual studio bekerja untuk saya

Nerdroid
sumber
1

Saya punya masalah serupa. Saya telah memperbaikinya dengan mengaktifkan fitur "Windows PowerShell 2.0" di "Aktifkan atau nonaktifkan fitur Windows". Perhatikan bahwa fitur ini diaktifkan secara default, saya mematikannya secara manual beberapa hari yang lalu.

Saya sedang mengerjakan Windows 10 Pro 64bit dan masalah yang sama dengan Visual Studio 2015 dan 2017 (aplikasi 32bit dan 64bit)

Adnan Mulalic
sumber
0

Unduh dan Instal Template Administratif untuk Windows PowerShell

Next:  Powershell x86 from As Administrator

Run:   Get-ExecutionPolicy -List  , and see if you have RemoteSigned etc..

1. 5 different scopes  Set-ExecutionPolicy "RemoteSigned" -Scope Process -Confirm:$false

2. Machine and User Policy you have to set through the Group Policy Administration Template in 2 areas.

UPDATE - EDIT:

Set ALL of them to  "Undefined" and ONLY the LocalMachine to "Restricted" 

Ini adalah apa yang diperbaiki mungkin setelah saya memberi kuasa saya lebih banyak izin tidak tahu bahwa itu akan mengacaukan visual studio 2013 dan 2015

Tom Stickel
sumber
0

Masalah ini tidak selalu terkait dengan Kebijakan Eksekusi PowerShell. Mesin saya dikonfigurasi sebagai "Tidak Terbatas" untuk PowerShell x64 dan x86, tetapi saya masih mendapatkan pesan kesalahan ini dari waktu ke waktu di Visual Studio 2013.

Ketika saya mencoba membuka Package Manager Console:

Windows PowerShell berhasil memperbarui kebijakan eksekusi Anda, tetapi pengaturannya ditimpa oleh kebijakan yang ditentukan pada cakupan yang lebih spesifik. Karena penggantian, shell Anda akan mempertahankan kebijakan eksekusi efektif saat ini dari Unrestricted. Ketik "Get-ExecutionPolicy -List" untuk melihat pengaturan kebijakan eksekusi Anda. Untuk informasi lebih lanjut, lihat "Dapatkan-Bantuan Set-ExecutionPolicy".

Ini bukan pesan kesalahan yang valid.

Memulai ulang Visual Studio tidak selalu menyelesaikan masalah.

Menjalankan proses sebagai admin tidak pernah menyelesaikan masalah.

Seperti Declan, pembaruan terbaru dari plugin Package Manager memperbaiki masalah: 2.8.60723.765

Vilmir
sumber
0

Tetapkan kebijakan eksekusi ke Bypass, bukannya Unrestricted atau RemoteSigned; tutorial ini memberikan instruksi yang lebih lengkap . Juga, jika Anda mengalami kesulitan menggunakan PowerShell untuk mengubah kebijakan maka penulis menunjukkan kepada Anda bagaimana mengubahnya di Regedit.

Charles Driver Jr.
sumber
Unrestricted seharusnya bekerja dengan baik - itu hanya memperingatkan Anda ketika Anda mungkin melakukan sesuatu yang tidak aman, di mana Bypass hanya akan melanjutkan dan menjalankan perintah.
Auspex
0

Ada banyak sekali tikaman dalam kegelapan di sini, jadi saya akan menambahkan sendiri.

Dalam kasus saya, saya juga mendapat pesan bahwa ada file kunci yang hilang, dan rekomendasi untuk dijalankan dnu restoredi konsol manajer paket. Saya melakukannya, restart VS, dan semuanya sekarang berfungsi.

Auspex
sumber
0

Apa yang berhasil untuk saya adalah:

  1. Tetapkan kebijakan Eksekusi ke Tidak Terbatas.
  2. Find-Module ISEModuleBrowserAddon | Install-Module
  3. Import-Module ISEModuleBrowserAddon
  4. Find-Module ISEScriptAnalyzerAddOn | Install-Module
  5. Import-Module ISEScriptAnalyzerAddOn
  6. Import-Module ScriptBrowser
  7. Di ISE, Anda perlu Enable-ScriptBrowser

Dan Anda memiliki Module, Script, dan Analyzer di ISE Anda.

Jalankan di Win 10 Pro, Host Konsol x64 5.0.10586.122

Semoga berhasil!

Dima
sumber