2009-08-17 58 views
4

我使用2010 InstallShield的版本,如果有人知道如何做想知道以下几点:的InstallShield - 获取文件

我想我的安装程序中我主要的exe文件的版本,并使它的名字我的setup.exe InstallShield正在生成。任何想法如何做到这一点?

回答

3

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

3

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

1)创建一个变量如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 
+2

我尝试了您的第一个建议(#1),但InstallShield不允许您在安装文件名中使用变量。 – 2009-08-20 19:23:05