2009-08-17 59 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