私はInstallShield2010を使用していますが、次の方法を誰かが知っているかどうか疑問に思っていました。
インストーラー内でメインのexeのバージョンを取得し、InstallShieldが生成しているsetup.exeの名前にします。それを行う方法はありますか?
私はInstallShield2010を使用していますが、次の方法を誰かが知っているかどうか疑問に思っていました。
インストーラー内でメインのexeのバージョンを取得し、InstallShieldが生成しているsetup.exeの名前にします。それを行う方法はありますか?
これを行うにはいくつかの方法があります....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
これを実現するために自動化サービスを使用することができました。これは、InstallShieldのプログラミングインターフェイスです。Visual Studioでexe用にプロジェクトをビルドするときはいつでも、ビルド後のexeを実行して、InstallSheildプロジェクトを同じバージョンに設定します。