2009-08-17 3 views
4

Я использую InstallShield 2010 и было интересно, если кто-нибудь знает, как сделать следующее:InstallShield - Получить версию файла

Я хочу, чтобы получить версию моего главного ехе в мой инсталлятор и сделать его имя мой setup.exe InstallShield генерирует. Любая идея, как это сделать?

ответ

3

Я смог использовать службы автоматизации для этого, что является интерфейсом программирования для InstallShield. Всякий раз, когда я создаю свой проект в Visual Studio для своего exe, я запускаю exe в Post-build, который устанавливает проект InstallSheild в одну и ту же версию.

3

Есть несколько способов, вы можете сделать это .... в зависимости от типа проекта IS (MSI, InstallScript и т.д.)

1) создать переменную, например, PRODUCT_NAME в менеджере свойств установите его в ваш installscript и получить его, чтобы изменить ваше * .exe имя

2) Используя SQL, вы можете программно получить имя product_имя и установить имя * .exe. Найдите прямой редактор (Installation Designer -> Дополнительные инструменты -> Direct Editor) для точного местоположения таблицы/значения, которое вам нужно. Например (ниже), используя 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 не позволяет использовать переменные в имени файла установки. –