Nuget gives the error "ps1 cannot be loaded because running scripts is disabled"

29,963

Solution 1

I guess the specific package you are trying to install needs to run a Powershell script and for some reason, Powershell execution is disabled on your machine. You can search google on "how to enable Powershell" for a complete guide but generally, it goes like this:

  • Open up a Powershell command window (just search for Powershell after pressing windows start button)
  • Check out current restrictions by typing Get-ExecutionPolicy
  • Enable PowerShell by typing Set-ExecutionPolicy remotesigned

This issue does not affect the server you are planing to install your application on.

Solution 2

If you encounter this installing NuGet packages from Visual Studio Package Manager Console, run Visual Studio as Administrator.

Solution 3

In case anybody finds this on Google and this happened to you, I suggest you first try restarting Visual Studio, particularly if the Package Manager Console has worked for you before. In VS 2019, I've noticed that, if I leave it in the background while it's loading, sometimes it'll throw that error.

For me, restarting Visual Studio and leaving it in the foreground until the Package Manager Console finished initializing solved the issue. Note that running it as administrator was not necessary.

Solution 4

enter image description here

Translation of the image text would be somewhat: This certificate has been revoked from its key store.

Certificate on my init.ps1 has expired - thus RemoteSigned will not do. For that package version to work, it would need to be set to ByPass or Unrestricted. Personally, i would not recommend doing this...

-- EDIT -- I went ahead and updated the package and found they have resigned a new cert for v 1.0.2. Issue following in NuGet console for fix:

Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

Solution 5

I ran into a similar issue building a project and found that you MAY have to set the execution policy to remoteSigned (as others have mentioned) in BOTH powershell (x86) and powershell (x64). I was running the x64 version as administrator and Get-ExecutionPolicy returned "remoteSigned" but the x86 version hadn't been updated. Just something to try if the above answers don't work for you.

Share:
29,963
Lucian Bumb
Author by

Lucian Bumb

I like C#, Asp.Net MVC and angular and blazor. Programming is a hobby for me

Updated on January 22, 2021

Comments

  • Lucian Bumb
    Lucian Bumb over 3 years

    I have a new empty MVC 5 project, and I try to install Nuget packages. When I insert in the Nuget Console the command :Update-Package I got the following asnwer:

    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
    

    then I start to install some new packages and got again this message:

    WebApp\packages\Modernizr.2.8.3\tools\install.ps1 cannot be loaded because running scripts is disabled on this system

    I saw some posts related with this message, but not related with MVC projects.

    My question is:

    Why I get those messages?

    What can I do to fix this issue?

    This issue, can appear on the server where my application will run? Some scripts to not run as expected?