Installation InstallShield-获取文件的版本

Installation InstallShield-获取文件的版本,installation,installshield,Installation,Installshield,我正在使用InstallShield 2010,不知道是否有人知道如何执行以下操作: 我想在安装程序中获取主exe的版本,并将其设置为正在生成的setup.exe InstallShield的名称。你知道怎么做吗?有几种方法可以做到这一点……这取决于你的IS项目类型(MSI、installscript等) 1) 在属性管理器中创建一个变量,如Product_Name,在installscript中设置它并检索它以修改*.exe名称 2) 使用SQL,您可以通过编程方式获取产品名称并设置*.exe

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


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

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

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

2) 使用SQL,您可以通过编程方式获取产品名称并设置*.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

我能够使用自动化服务来完成这项工作,这是InstallShield的编程接口。每当我在Visual Studio中为我的exe生成项目时,我都会在后期生成中运行一个exe,将InstallShield项目设置为相同的版本。

我尝试了您的第一个建议(#1),但InstallShield不允许您在安装文件名中使用变量。