我正在使用InstallShield 2010,并且想知道是否有人知道如何执行以下操作:
我想在我的安装程序中获取我的主exe的版本,并使其成为我的setup.exe InstallShield正在生成的名称。知道怎么做吗?
答案 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项目设置为相同的版本。