web-dev-qa-db-ja.com

Nugetはこのエラーを表示します。「スクリプトの実行が無効になっているため、ps1をロードできません」

新しい空のMVC 5プロジェクトがあり、Nugetパッケージをインストールしようとしています。 Nuget Consoleにコマンド:Update-Packageを挿入すると、次のようになりました:

File E:\WebApp\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\tools\uninstall.ps1 cannot be loaded because running scripts is 
disabled on this system. For more information, see about_Execution_Policies at http://go.Microsoft.com/fwlink/?LinkID=135170.At line:1 char:3
+ & 'E:\WebApp\packages\Microsoft.CodeDom.Providers.Dot ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

その後、いくつかの新しいパッケージのインストールを開始し、再びこのメッセージが表示されました。

WebApp\packages\Modernizr.2.8.3\tools\install.ps1は、このシステムでスクリプトの実行が無効になっているためロードできません

このメッセージに関連する記事がいくつかありましたが、MVCプロジェクトには関連していません。

私の質問は:

なぜこれらのメッセージを受け取るのですか?

この問題を解決するにはどうすればよいですか?

この問題は、アプリケーションが実行されるサーバーで発生する可能性がありますか?一部のスクリプトが期待どおりに実行されませんか?

18
Lucian Bumb

インストールしようとしている特定のパッケージでは、PowerShellスクリプトを実行する必要があり、何らかの理由で、PowerShellの実行がマシンで無効になっていると思います。完全なガイドについては、「powershellを有効にする方法」でgoogleを検索できますが、一般的には次のようになります。

  • PowerShellコマンドウィンドウを開きます(Windowsのスタートボタンを押した後、PowerShellを検索するだけです)
  • 「Get-ExecutionPolicy」と入力して、現在の制限を確認します
  • 「Set-ExecutionPolicy remotesigned」と入力してPowerShellを有効にします

この問題は、アプリケーションのインストールを計画しているサーバーには影響しません。

32
Nikos Tsokos

Visual Studio Package ManagerコンソールからNuGetパッケージをインストールしている場合は、Visual Studioを管理者として実行してください。

7
David Sopko

enter image description here

画像のテキストの翻訳は多少なります。この証明書は、キーストアから失効されています。

Init.ps1の証明書の有効期限が切れている-したがって、RemoteSignedは期限切れになりません。そのパッケージバージョンが機能するには、ByPassまたはUnrestrictedに設定する必要があります。個人的に、私はこれを行うことをお勧めしません...

-編集-私は先に進んでパッケージを更新し、v 1.0.2の新しい証明書を辞任したことを発見しました。 NuGetコンソールで次の問題を修正します。

Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
5
mschr

プロジェクトを構築する同様の問題に遭遇し、powershell(x86)とpowershell(x64)の両方で実行ポリシーを(他の人が述べたように)remoteSignedに設定する必要がある場合があります。管理者としてx64バージョンを実行していて、Get-ExecutionPolicyが「remoteSigned」を返しましたが、x86バージョンは更新されていませんでした。上記の答えがうまくいかない場合は、試してみてください。

1
Robert McCraw