有没有办法读取 MSI 中的属性?文件?
例如,给定一个名为 Testpackage.msi 的 MSI 文件,我需要找到
productName
PackageCode
version
这我将与 WMI 卸载一起使用string objPath = string.Format("Win32_Product.IdentifyingNumber='{0}', Name='{1}', Version='{2}'", "{AC9C1263-2BA8-4863-BE18-01232375CE42}", "testproduct", "10.0.0.0");
使用 Orca是一个很好的选择,如果这可以通过编程实现。然后我可以使用它来生成自动发行说明。在卸载程序中也是如此。
最佳答案
您可以使用 COM-based API for working with MSI ,并做类似的事情
Function GetVersion(ByVal msiName)
Const msiOpenDatabaseModeReadOnly = 0
Dim msi, db, view
Set msi = CreateObject("WindowsInstaller.Installer")
Set db = msi.OpenDataBase(msiName, msiOpenDatabaseModeReadOnly)
Set view = db.OpenView("SELECT `Value` FROM `Property` WHERE `Property` = 'ProductVersion'")
Call view.Execute()
GetVersion = view.Fetch().StringData(1)
End Function
关于wix - 如何以编程方式读取 MSI 文件中的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/298841/