在我的解决方案VS中,我有一个C#项目和一个InstallShield项目。
我想获得InstallShield的产品版本:
但是我的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创建的表达。*
答案 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 :))