-2

installshield を使用して製品のインストーラーを開発していますが、カスタム アクションの ActionText (現在のアクションの説明) の更新に問題があります。

ここで次の手順に従いました: http://helpnet.flexerasoftware.com/installshield17helplib/ActionTextSettings.htmは完全に理にかなっていて、動作するはずですが、カスタム アクションは UI のアクション テキストを更新しません。

カスタム アクションが実行され、実行時間の長いプロセスが終了するのを待つため、アクション テキストの更新を担当するスレッドをブロックしている可能性があると考えています。

今、私はそれを書いていますが、意味がないように見えますが、他に何ができるのかわかりません!

カスタム アクションの主な詳細は次のとおりです。

Filename & Command line: wscript.exe "invisible.vbs" "longrunningbatch.bat"
Return Processing:       Synchronous
In-Script Execution:     Commit Execution in System Context

また、invisible.vbs には以下が含まれます。

CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, True

上記の行はシェル ウィンドウを非表示にする必要があり、'True' を指定すると、バッチ ファイルの実行が完了するまでシェルが戻らないことが保証されます。

また、リンクに従ってアクション テキスト リストにカスタム アクションを追加し、文字列に関連付けました。

正しく動作するはずですか?

他の誰かがこれをまったく経験しましたか?

4

2 に答える 2

1

最初に、Windows インストーラーをブラッシュ アップする必要があります。アクションを commit から deferred に変更し、それで問題ない場合は、通常とは異なることを行ったことになるからです。遅延アクションは、インストールに関連する何らかの方法でシステムを変更するアクション用です。コミット アクションは、関連付けられた遅延アクションが実行したすべての作業を終了させるものです (たとえば、遅延アクションは一部のシステム ファイルを変更します。コミット アクションは、変更されていないシステム ファイルのバックアップを削除します)。さらに、遅延アクションがある場合は、ユーザーがインストールをキャンセルしたり失敗した場合に、遅延アクションによって実行されたアクションを元に戻すロールバック アクションも必要です。

次の 2 つのリンクは、正しい方向を示すのに役立ちます。

http://blogs.flexerasoftware.com/installtalk/2011/10/i-take-it-all-back-using-windows-installer-msi-rollback-actions.html

http://www.installsite.org/pages/en/isnews/200108/index.htm

第 2 に、カスタム アクションが進行状況ダイアログのアクション テキストを更新するだけの場合、それはまったく必要ありません。Flexera はこれを文書化していませんが、ダイレクト エディターを使用して作成した任意のカスタム アクションのアクション テキストを設定できます。これを行うには、"ActionText" テーブルにエントリを追加します。ここで、"Action" 列はカスタム アクションの名前で、"Description" 列は表示するテキストです。

于 2013-06-17T05:42:10.690 に答える
-2

Ok、

だから私はこの投稿を見つけました:http ://community.flexerasoftware.com/archive/index.php?t-82772.html 、これは基本的に私のカスタムアクションが実行をコミットするように設定されていたので、インストールはその時点で効果的に終了したと言っています実行中であったため、進行状況テキストを更新しても意味がありません。

したがって、私の状況の修正は、カスタムアクションをInstallFinalizeの直前に移動し、「遅延実行」に切り替えることです。

これが誰かを助けるかもしれないことを願っています。

于 2012-08-31T08:28:04.033 に答える