gpt4 book ai didi

c# - 确定 MSI 的版本而不安装它

转载 作者:太空狗 更新时间:2023-10-29 20:14:35 24 4
gpt4 key购买 nike

我有一个从我的 C# Visual Studio 2010 构建的 MSI 文件。版本是通过 Version 属性设置的。我想知道是否有一种无需安装文件即可确定版本的方法。当前,当右键单击并查看其不显示的属性时。

最佳答案

以下代码可能会有所帮助。但请记住,您应该首先添加对 Microsoft Windows Installer 对象库的 COM 引用,并将 WindowsInstaller 命名空间添加到您的代码中。以下功能可能是您所需要的。

public static string GetMsiInfo( string msiPath, string Info)
{
string retVal = string.Empty;

Type classType = Type.GetTypeFromProgID( “WindowsInstaller.Installer” );
Object installerObj = Activator.CreateInstance( classType );
Installer installer = installerObj as Installer;

// Open msi file
Database db = installer.OpenDatabase( msiPath, 0 );

// Fetch the property
string sql = String.Format(“SELECT Value FROM Property WHERE Property=’{0}’”, Info);
View view = db.OpenView( sql );
view.Execute( null );

// Read in the record
Record rec = view.Fetch();
if ( rec != null )
retVal = rec.get_StringData( 1 );

return retVal;
}

如果您需要版本,请传入您想要的 MSI 文件的名称,例如

string version = GetMsiInfo( "d:\product.msi", “ProductVersion” );

关于c# - 确定 MSI 的版本而不安装它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7145810/

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