4

私はInstallShield2010を使用していますが、次の方法を誰かが知っているかどうか疑問に思っていました。

インストーラー内でメインのexeのバージョンを取得し、InstallShieldが生成しているsetup.exeの名前にします。それを行う方法はありますか?

4

2 に答える 2

3

これを行うにはいくつかの方法があります....ISプロジェクトの種類(MSI、installscriptなど)によって異なります。

1)プロパティマネージャーでProduct_Nameなどの変数を作成し、それをインストールスクリプトに設定して取得し、*。exe名を変更します。

2)SQLを使用すると、プログラムでproduct_nameを取得し、*。exe名を設定できます。ダイレクトエディタ(インストールデザイナ->追加ツール->ダイレクトエディタ)で、必要なテーブル/値の正確な場所を検索します。たとえば(以下)、VBScriptを使用して、ISプロジェクトにプルするファイルのインストールルートへのパスを変更します。同様に、これはISDirectEditorの任意のテーブルに対して実行できます。VisualbuildProなどのツールを使用することも役立つと思います。それは〜$ 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
于 2009-08-20T15:28:49.980 に答える
3

これを実現するために自動化サービスを使用することができました。これは、InstallShieldのプログラミングインターフェイスです。Visual Studioでexe用にプロジェクトをビルドするときはいつでも、ビルド後のexeを実行して、InstallSheildプロジェクトを同じバージョンに設定します。

于 2009-08-24T13:16:55.590 に答える