C# 3.0 Powershell v2 ctp3的Powershell参考程序集

C# 3.0 Powershell v2 ctp3的Powershell参考程序集,c#-3.0,powershell-2.0,C# 3.0,Powershell 2.0,我已经从ms下载中安装了powershell v2 ctp3,并想知道在c#中用于此版本的常用参考程序集存储在何处。我知道对于v1版本,它们位于程序文件\etc\reference assemblies\powershell。。。。但是v2 ctp3版本在哪里呢。我特别寻找新的System.Management.Automation.dll 问候 Bob.在我的32位XP系统上 Get-ChildItem \ -Recurse -Include System.Management.Automa

我已经从ms下载中安装了powershell v2 ctp3,并想知道在c#中用于此版本的常用参考程序集存储在何处。我知道对于v1版本,它们位于程序文件\etc\reference assemblies\powershell。。。。但是v2 ctp3版本在哪里呢。我特别寻找新的System.Management.Automation.dll

问候 Bob.

在我的32位XP系统上

Get-ChildItem \ -Recurse -Include System.Management.Automation.dll | 
 ForEach-Object {$.DirectoryName,$($.VersionInfo.FileVersion)}

查看文件版本会发现中的版本就是您要查找的版本。但是由于它在GAC中,您不需要担心它,只需引用它,然后再使用它。

您不应该使用GAC来解析引用。您应该在以下内容下找到适当的参考: C:\Program Files\Reference Assembly\Microsoft\WindowsPowerShell

在GAC中,程序集是在设计/构建时解析的,这是一个常见的误解。在CLR4.0之前,您可以侥幸逃脱(因为3.0和3.5实际上是CLR2.0)。有了真正的多目标,这就打破了。因此,应始终使用引用程序集


还要注意,引用程序集不必包含任何代码。它们可以只是程序集元数据和公共符号。

哦,我想补充的是,融合负载使用GAC进行运行时解析


我所说的设计/构建时,是指使用Visual Studio构建应用程序,或使用MSBuild构建EXE时。在构建过程中,我们确定放置在EXE中的引用。由于可能涉及多个CLR,我们必须确保引用了“正确”的CLR。

在我的例子中,路径是

C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0_31bf3856ad364e35


我发现它的方式是在Windows中安装此ctp后查看更新的文件夹,并查看更新的位置。希望这对您有所帮助。

嗨,巴斯,我运行了您的脚本,得到了相同的结果。这是否意味着v2ctp3的aseembly版本是6.1.6949.0。鲍勃,看来就是这样。谢谢Bob.恐怕我对PowerShell团队的版本控制策略没有任何了解,但我希望您可以继续使用提供的信息。如果您运行的是Vista或更高版本,您可以通过获得PowerShell v2.0 RTM(最终版本为2008r2和win7)…通过Windows管理框架RC。。。

   C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0
6.0.6000.16386
C:\WINDOWS\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35
6.1.6949.0