web-dev-qa-db-ja.com

プログラムでInstallShield setup.exeの内容を抽出します

InstallShield setup.exeファイルのファイル内容を抽出しようとしています。 (私の計画はバックオフィスツールで使用することであるため、これはユーザーの操作なしにプログラムで行う必要があります。)

これは可能ですか?
(最初の調査では、失敗することが示されているようです。)

InstallShieldのすべての最新バージョンについて、一般的なソリューションを使用できる場合は、それが最適です。
それ以外の場合、ソリューションがInstallShieldの一部のバージョンでのみ機能する場合、それは途中のステップになります。 (おそらく、どのInstallShieldバージョンがsetup.exeは、exeファイルのバージョンリソースを確認することによります。

I それが見つかりました InstallShieldの一部のバージョンは/bまたは/extract_all。しかし、それを知る良い方法はありません。exeを起動し、GUIダイアログを表示するのではなく、抽出して正常に終了することを望んでいるだけでは、良い解決策とは思えません。したがって、私はより安定した方法を探しています。
アイデアを歓迎します。

22
leiflundgren

これをサポートする方法はありませんが、各インストーラーに関連するファイルを調べて、それらを抽出した後に実際にインストールする方法を理解する必要はありませんか?どのコマンドラインが適用されるかを把握するのに時間をかけることができると仮定すると、ここに、通常インストールを抽出できるいくつかの候補パラメーターがあります。

MSIベース(InstallScript MSIインストールに使用可能なイメージにならない場合があります):

  • setup.exe /a /s /v"/qn TARGETDIR=\"choose-a-location\""

    または、前提条件も抽出する(動作するバージョンの場合)

  • setup.exe /a"choose-another-location" /s /v"/qn TARGETDIR=\"choose-a-location\""

InstallScriptベース:

  • setup.exe /s /extract_all

スイートベース(結果ファイルのインストール方法が明らかでない場合があります):

  • setup.exe /silent /stage_only ISRootStagePath="choose-a-location"
35
Michael Urman

http://www.compdigitec.com/labs/files/isxunpack.exe

使用法:isxunpack.exe yourinstallshield.exe

同じフォルダーに解凍されます。

11
Motes

Linuxにはunshieldがあり、これは(GUIにライセンスキープロンプトなどのカスタム抑止が含まれていても)うまくいきました。すべての主要なディストリビューション(Arch、suse、debianおよびFedoraベース)のリポジトリに含まれており、そのソースは https://github.com/twogood/unshield で入手できます。

5
stefanct

皮切りに:

setup.exe /?

また、いくつかのオプションが表示されたダイアログポップアップが表示されます。

4
Garen

cabextract と呼ばれる無料のオープンソースプログラムは、.cabファイルだけでなく、Macrovisionのアーカイブの内容もリストおよび抽出します。

% cabextract /tmp/QLWREL.EXE
Extracting cabinet: /tmp/QLWREL.EXE
  extracting ikernel.dll
  extracting IsProBENT.tlb
  ....
  extracting IScript.dll
  extracting iKernel.rgs

All done, no errors.
1
Mikhail T.