2013-06-11 80 views
6

是否有​​程序集的2.0(或更高版本)?2.0版本的System.Management.Automation?

我在看C#中的PowerShell類,其中說這個類是由PowerShell 2.0引入的。當我在Visual Studio中添加對程序集的引用時,該版本號是否與我看到的版本號相對應?

這是對my other question的一個額外問題,這是關於在該程序集內部解決PowerShell類時遇到的問題。

我已經試過了​​裝配在兩個GAC:

C:\Windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35 

而且Reference Assemblies

C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0 

兩者都含有文件夾只有1.0

我已經安裝了PowerShell 2.0。

回答

6

powershell v1和powershell v2的強名稱版本是1.0.0.0。令人驚訝的是,但是這是後向兼容性設計的一個功能。 PowerShell v1和v2都運行在CLR2上。 Powershell v3運行在CLR4上,所以他們將強名稱版本改爲3.0.0.0

只是爲了進一步混淆事項,所有版本的Windows文件夾名稱都是v1.0 - 同樣是出於兼容性考慮。

實際運行真正的PowerShell v1.0的唯一方法是如果你在Windows XP,Vista或Server 2003/2008上。如果您正在運行Windows 7,2008r2,則至少在v2上運行。如果你在8或2012年,你至少在v3的powershell。

我希望這會有所幫助。

+0

我想這回答了我的問題,雖然我在Windows Server 2008 R2上,所以它仍然嚴格限於版本1.0,但是對於PowerShell 2.0。好吧。回到我的[原始問題](http://stackoverflow.com/questions/17051184/no-powershell-in-system-management-automation)獲取該'PowerShell'類來解決。 – tnw