接收已安装MSI程序包的名称和版本

本文关键字:版本 程序 安装 MSI | 更新日期: 2023-09-27 18:25:05

我需要从C#项目中获取本地机器上所有安装的MSI包的名称和版本。有什么想法吗?

谢谢。

接收已安装MSI程序包的名称和版本

我来看看Windows安装程序XML(WiX)部署工具基础(DTF)中的Microsoft.Deployment.WindowsInstaller命名空间。它有:

public static IEnumerable<ProductInstallation> GetProducts(
    string productCode,
    string userSid,
    UserContexts context
)

productCode(字符串)

要使用的产品实例的ProductCode(GUID)列举。仅上下文范围内的产品实例由userSid指定,并且将枚举上下文参数。此参数可以设置为null以枚举指定的上下文。

userSid(字符串)

指定安全标识符(SID),用于限制枚举的上下文。SID值其他s-1-1-0被视为用户SID,并将枚举限制为当前用户或系统中的任何用户。特殊SID字符串s-1-1-0(Everyone)指定系统中所有用户的枚举。这参数可以设置为null以将枚举范围限制为当前用户。当上下文仅设置为机器上下文时,userSid必须为null。

上下文(用户上下文)

指定用户上下文。

它包装了Win32 MSI API MsiEnumProductsEx函数。这将带回一个ProductInstallation集合,您可以对其执行Linq查询,以查找您需要了解的有关已安装MSI的任何信息。