如何检查客户的 PC 是不是存在 .Net 相关的 DLL?

Posted

技术标签:

【中文标题】如何检查客户的 PC 是不是存在 .Net 相关的 DLL?【英文标题】:How can I check a customer's PC for presence of .Net related DLLs?如何检查客户的 PC 是否存在 .Net 相关的 DLL? 【发布时间】:2021-04-12 07:10:13 【问题描述】:

正如在previous question 上接受的答案中所述,我现在知道如何使用 .Net 类(如系统管理)在我的 Progress-4GL 程序中进行一些与 .Net 相关的编程。

如答案中所述,此开发基于 DLL(在本例中为 System.Management.dll)。

在我的 PC 上进行简单搜索,发现了该文件的多个实例:

Prompt>dir /S /B System.Management.dll
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v3.5\Profile\Client\System.Management.dll
...

C:\Windows\WinSxS\msil_system.management_b03f5f7f11d50a3a_4.0.15744.161_none_b6b533cbb2171a8a\System.Management.dll

显然,当我希望该程序在客户的计算机上运行而我对客户的计算机一无所知(好吧,我知道这是一台 Windows 计算机)。

为了能够使用 .Net 相关类,客户计算机的先决条件是什么?检查这些先决条件的简单方法是什么?

小调查后修改

与此同时,我发现我可以使用以下命令行命令在 PC 上找到已安装的 .Net 框架列表:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP

我如何知道这些版本与我所指的 DLL 之间的链接?

【问题讨论】:

.NET 包含所有 DLL。任何版本都可以 那么.Net 类版本呢?那些应该依赖于 DLL,不是吗? 是的,将使用 .exe 中加载的任何版本,除非您使用的是 @Charlieface:请将您的评论作为答案,以便我接受。 【参考方案1】:

.NET Framework/Core 包含所有 DLL。任何版本都可以,除非应用已配置为仅使用特定版本。

MSCORLIB.dll 版本 1.1、2.0(适用于 3.5 之前的 Framework)和 4.0(直到 4.8)将在同一个执行空间中并排运行。

【讨论】:

以上是关于如何检查客户的 PC 是不是存在 .Net 相关的 DLL?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查 .NET 中是不是存在 RSA 密钥容器

如何检查 vb .net 项目的 sql server 中是不是存在数据库和表?

如何检查刀片中是不是存在记录?

如何在创建存储过程之前检查它是不是存在

Nodejs,AWS Dynamodb如何在创建新记录之前检查用户是不是已经存在

如何检查 Websocket 连接是不是存在