如何从C#中的主项目获取InstallShield项目的产品版本

时间:2016-12-28 13:00:34

标签: c# installshield

在我的解决方案VS中,我有一个C#项目和一个InstallShield项目。

我想获得InstallShield的产品版本:

enter image description here

但是我的C#项目是这样的:

string Version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();

但它是Assembly版本,而不是installshield的产品版本。

可以使用新的参考COM: InstallShield 22自动化接口

使用此代码

var ISObject = new ISWiAuto22.ISWiProject();
ISObject.OpenProject(@strPath);
var version = ISObject.ProductVersion;

但是使用InstallShield Limtied Edition我们无法做到这一点。对于使用 OpenProject ,项目文件必须是.ism而我的是.isl,所以我得到一个错误:*这个项目是使用以前版本的InstallShield Developer,InstallShield - Windows Installer或InstallShield创建的表达。*

1 个答案:

答案 0 :(得分:1)

您可以使用InstallShield的COM接口来解析IS项目文件。

VBS示例:

Public Sub UpdateInstallerProductCode(strPath, strProductCode)
Dim objISWiProject

' Load InstallShield project
Set objISWiProject = CreateObject("ISWiAuto19.ISWiProject")
objISWiProject.OpenProject strPath

' Set new product code
objISWiProject.ProductCode = "{" & strProductCode & "}"

' Save and close InstallShield project
objISWiProject.SaveProject
objISWiProject.CloseProject
Set objISWiProject = Nothing
End Sub

我讨厌VB / S :))