2014年8月6日 星期三

Visual Studio 2013 遇到「無法初始化 PowerShell 主機 ….. 設為 AllSigned」問題

近幾個月來在使用 Visual Studio 2013 新建立 ASP.NET MVC 專案的時候總是常常會遇到這樣的問題,

SNAGHTML17ec2b1

SNAGHTML1917764

「無法初始化 PowerShell 主機,如果您的 PowerShell 執行原則設定設為 AllSigned,開啟 Package Manager Console 以便先初始化主機」

看了網路上的許多文章及嘗試各種正規的解決方法都還是沒有任何的改變,而且這樣的狀況在我沒有重新安裝電腦作業系統前就已經遇到過,那個時候還沒有將 VS2013 安裝 Update 2,就算是裝了 Update 2 之後,這問題依然存在,時至今日剛好 VS2013 Update 3 發佈也安裝了,還是一樣出現這個問題。

 


有關這個問題的解決方式可以參考「亂馬客」這一篇文章的作法,

[ERROR]VS2013建立Web專案時,發生 Could not add all required packages to the project. 的錯誤! - 亂馬客- 點部落

文章裡有提到是需要我們以系統管理者的身份去執行 PowerShell,然後輸入指令
Set-ExecutionPolicy AllSigned
讓 PowerShell execution policy 設定為 AllSigned,

SNAGHTML18de7f3

 

照這樣的處理應該是可以解決剛才所遇到的狀況,但是…… 依然出現這樣的狀況,

SNAGHTML17ec2b1

SNAGHTML1917764

其實這樣的情況在修改 PowerShell Execution Policy 之後,有時候就會正常,但有時候就還是一樣出現問題,而最近則是每次要建立新專案就一定會遇到這樣的狀況,真的讓我不勝其煩,後來我就想,不然我在建立新專案之前先把 Nuget Package Manager Console 給開起來試試看,

image

通常在修改 PowerShell Execution Policy 設定之後還是一樣出現問題,那麼就再重新啟動 Visual Studio 2013,然後在建立新專案之前先把 Nuget 的「套件管理器主控台 ( Package Manager Console )」給開啟,正常狀況下都可以正常地建立新專案,而不會再次出現同樣的問題。

 

BUT!

總是會有重開機的時候,總是會有重新開啟 Visual Studio 的時候,當一切重新開始之後,同樣的問題又會再次出現在你眼前……

煩不煩呀,都給你們玩就好啦,我還能開發專案嗎?

 

之後每次建立新專案的時候就會膽戰心驚,感覺每次建立新專案就好像玩樂透一樣,如果建立新專案沒有問題就覺得接下來的開發一定會很順利(完全地心理作用),如果遇到問題然後修改設定沒有作用、建立前開啟套件管理器主控台也是一樣沒有作用,這時候就完全沒有心思在開發上面了。這問題總是要做個解決才行,不能每次都搞哪幾招,而且還不見得有效。

後來看到了一篇在 Stack Overflow 上面的一篇討論,其中一則被推最多但是未被標示為解答的回文卻是能夠解決我的狀況,

asp.net mvc - Error creating new MVC project - EF and JQuery - Stack Overflow

image

我的電腦卻是有安裝 7-Zip 來取代 Windows 內建的壓縮程式,而且我安裝的是 64-bit 版本的 7-Zip,所以我也就照著回文裡所描述的方式,將「C:\Program Files\7-Zip」這一個目錄整個複製一份,然後貼到「C:\Program Files (x86)」目錄下,

image

然後,我沒有使用系統管理員身份執行 PowerShell 然後執行 PowerShell Execution Policy 設定的修改,也沒有在 Visual Studio 2013 裡新建立專案前去開啟「套件管理器主控台 Package Manager Console」,就這樣直接新建立一個 ASP.NET MVC 專案,而結果呢?

SNAGHTML17ec2b1

SNAGHTML1917764

是的,仍然是一樣的結果。

 

多次的試驗下來之後,我發現到一個狀況,當我做了某件事情之後就會出現上面的問題,就是有時候我會再重新開機之後會去執行系統清理的操作,有時候會使用「Glary Utilities」而有時候會再使用「Wise Care 365」,當使用過這些工具去執行系統清理之後,開啟 Visual Studio 2013 並且去建立新專案就有很大的機率會碰到上面的狀況。

當遇到這樣的狀況後,當下就是先關閉 Visual Studio 2013,接著先以系統管理員身份執行 PowerShell 然後執行 PowerShell Execution Policy 設定的修改「Set-ExecutionPolicy AllSigned」,然後開啟 Visual Studio 2013,在建立新專案之前記得要先開啟「套件管理器主控台 Package Manager Console」,再來建立新專案就比較不會出現狀況。

 

重新安裝 NuGet Package Manager

另外 demo 也提供一個解決方法,就是重新安裝 NuGet 套件管理員(NuGet Package Manager),先解除安裝原本 Visual Studio 裡 NuGet Package Manager,然後重新開啟 VS2013 之後再重裝 NuGet Package Manager,這也是一個解決的方法,也提供給各位參考。

 

這是一篇沒有結論的一篇文章,純粹是作為一個記錄,讓同樣有遇到一樣問題的朋友可以在此討論並找出解決的方法。

 

以上

12 則留言:

  1. 回覆
    1. XD, 就是重灌之後還是一樣呀
      不知道是那一個套件的問題

      刪除
  2. 前陣子也被這問題弄得很煩...重灌也沒用
    後來想最近一次安裝的套件是 .NET Demon
    改成停用後,試開幾次新專案都沒問題... (這純粹是沒招了,開始亂抓藥...)

    回覆刪除
    回覆
    1. 我還沒安裝 .NET Demon 之前就已經發生這種狀況了
      也是搞得我很煩
      我重灌電腦作業系統之後,而且還是用新的硬碟、新的安裝 ISO、新版的 Visual Studio 2013 Update 2 ISO 來安裝
      結果還是一樣
      所以就覺得是某一個 Visual Studio 外掛套件的問題
      我上課用的 Hyper-V VM 裡面的 VS2013 就沒有這個問題
      因為安裝的外掛套件只有基本的,什麼 ReSharper 等套件都沒有裝.

      刪除
    2. 囧,沒招了...

      刪除
  3. 使用早年Windows版本的經驗:可能有些微軟的程式得依序安裝,少安裝一個就會出現無法解決的問題,或者是安裝Patch蓋到核心檔案造成

    回覆刪除
  4. 開新的空白專案,在去新增MVC專案,目前是這樣才能新增成功,

    回覆刪除
  5. 我也遇到相同的問題,裝了這個之後就【好了】!!?
    http://social.technet.microsoft.com/wiki/contents/articles/21016.how-to-install-windows-powershell-4-0.aspx
    Windows Management Framework 4.0

    您試試看有沒有效。

    回覆刪除
    回覆
    1. 直接針對 Powershell 的問題去解決,這個解法是比較合理,雖然還沒有試過(因為最近比較沒有狀況出現),還是感謝你所提供的訊息。

      刪除
  6. 我剛才使用vs2015也有相同問題,用了您說的方式,是可以解決
    "當遇到這樣的狀況後,當下就是先關閉 Visual Studio 2013,接著先以系統管理員身份執行 PowerShell 然後執行 PowerShell Execution Policy 設定的修改「Set-ExecutionPolicy AllSigned」,然後開啟 Visual Studio 2013,在建立新專案之前記得要先開啟「套件管理器主控台 Package Manager Console」,再來建立新專案就比較不會出現狀況。"

    回覆刪除
    回覆
    1. 之前遇到問題的時也是這麼去解決,不過最近幾個月沒有再遇到這個情況就是了,不曉得是不是 VS2013 Update 做了修正

      刪除
  7. 我在vs2017也遇到這個問題,找了很久後找到這個方法可以解決我的問題,修改devenv.exe.config,https://developercommunity.visualstudio.com/content/problem/199976/visual-studio-failed-to-initialize-the-powershell.html?inRegister=true

    回覆刪除

提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。