InstallShield - 获取文件的版本

时间:2009-08-17 20:43:00

标签: installer installshield

我正在使用InstallShield 2010,并且想知道是否有人知道如何执行以下操作:

我想在我的安装程序中获取我的主exe的版本,并使其成为我的setup.exe InstallShield正在生成的名称。知道怎么做吗?

2 个答案:

答案 0 :(得分:3)

有几种方法可以做到这一点....取决于您的IS项目类型(MSI,installscript等)

1)在Property Manager中创建一个变量,如Product_Name,在installscript中设置并检索它以修改* .exe名称

2)使用SQL,您可以以编程方式获取product_name并设置* .exe名称。搜索直接编辑器(安装设计器 - >其他工具 - >直接编辑器)以获取所需表格/值的确切位置。例如(下面),使用VBScript,我修改了我拉入IS项目的文件的安装根目录的路径。同样,这可以对IS Direct Editor中的任何表进行。使用像Visual build Pro这样的工具,我相信也会帮助你。这是值得的〜$ 100!

    Set oMSI = CreateObject("WindowsInstaller.Installer")
    On Error Resume Next

    ' open ISM file in transacted mode
    Set oDB = oMSI.OpenDatabase("C:\Path\to\myProject.ism", 1)

    strQuery = "Select * FROM `ISPathVariable` WHERE `ISPathVariable`.`ISPathVariable` = 'InstallTreeFolder'"

'////////////////////////////////////////////////////////////  
'// Update Path Variable

' fetch the one and only samplesource record
Set oView = oDB.OpenView(strQuery)
oView.Execute
Set oRec = oView.Fetch

' change field 2, the Value field
oRec.StringData(2) = "%INSTALL_TREE_ROOT%"

' update the changed record
oView.Modify 2, oRec

' close the view, commit changes, clean up
oView.Close: oDB.Commit: Set oMSI = Nothing

答案 1 :(得分:3)

我能够使用自动化服务来完成此任务,这是InstallShield的编程接口。每当我在Visual Studio中为我的exe构建我的项目时,我在Post-build中运行一个exe,它将InstallSheild项目设置为相同的版本。