gpt4 book ai didi

powershell - Powershell加载什么版本的dll文件?

转载 作者:行者123 更新时间:2023-12-02 22:57:49 25 4
gpt4 key购买 nike

当我在 Windows 10 中启动 PowerShell ISE 时,我可以运行以下代码

$dt = new-object "system.data.DataTable";

我知道这是唯一可行的,因为 System.Data.dll 已加载,否则会出现错误 DataTable类来自 System.Data.dll

我的电脑上安装了多个版本的.Net framework,比如v4.6.x、v4.7.x

所以我的问题是,一旦我的 PowerShell 启动

  1. 我怎么知道加载了哪些 DLL 文件?
  2. 他们的版本是什么?

提前感谢您的宝贵时间!

最佳答案

使用以下命令,显示了我运行 PowerShell v5.1 的 Windows 10 机器的示例输出:

PS> (Get-Item ([System.Data.DataTable].Assembly.Location)).VersionInfo | Format-List    

OriginalFilename : system.data.dll
FileDescription : .NET Framework
ProductName : Microsoft® .NET Framework
Comments : Flavor=Retail
CompanyName : Microsoft Corporation
FileName : C:\WINDOWS\Microsoft.Net\assembly\GAC_64\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll
FileVersion : 4.7.3160.0 built by: NET472REL1LAST_C
ProductVersion : 4.7.3160.0
IsDebug : False
IsPatched : False
IsPreRelease : False
IsPrivateBuild : True
IsSpecialBuild : False
Language : English (United States)
LegalCopyright : © Microsoft Corporation. All rights reserved.
LegalTrademarks :
PrivateBuild : DDBLD202B
SpecialBuild :
FileVersionRaw : 4.7.3160.0
ProductVersionRaw : 4.0.30319.0
  • [System.Data.DataTable] 是一个类型字面量(表示给出全名的类型的对象)

  • .Assembly 返回表示包含该类型的程序集的对象。

  • .Location 返回程序集的文件路径。

  • 将该文件路径传递给 Get-Item 输出代表程序集文件的 [System.IO.FileInfo] 对象。

  • [System.IO.FileInfo] 对象有一个返回版本信息详细信息的 .VersionInfo 属性。

  • 管道传输到 Format-List 以列表形式显示版本信息详细信息,每个属性打印在自己的行上。

请注意,有两个版本号:

  • CLR(公共(public)语言运行时)版本号,反射(reflect)在 Version.ProductVersionRaw(4.0.30319.0 )(但似乎也间接地在文件路径中,v4.0_4.0.0.0__b77a5c561934e089)

  • Framework 版本号,反射(reflect)在 VersionInfo.ProductVersion (4.7.3160.0)

通常,多个成功的框架版本都建立在相同的CLR版本上;例如,框架 v4.6.x 和 v4.7.x 都是基于 CLR v4.x 构建的。

请注意,并非所有 System.* 类型都必须报告完全相同的 framework 版本,但根据定义,它们报告的 CLR 版本是一样。


通过直接访问 ProductVersion 版本信息,使用以下内容仅提取 framework 版本号,作为 [version] 对象属性:

[version] (Get-Item ([System.Data.DataTable].Assembly.Location)).VersionInfo.ProductVersion

例如,这会产生:

Major  Minor  Build  Revision
----- ----- ----- --------
4 7 3160 0

关于powershell - Powershell加载什么版本的dll文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52826022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com