2011-12-30 28 views
20

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

これは可能ですか?
(初期の調査では失敗すると思われます)

一般的な解決方法がある場合は、すべての最新バージョンのInstallShieldが最適です。
解決策がInstallShieldの一部のバージョンでのみ機能する場合は、途中で一歩となります。 (おそらく、EXEファイルのバージョンリソースを見ることであるのInstallShieldバージョンsetup.exe推測することが可能であろう。

私はいくつかのInstallShieldバージョンは/bまたは/extract_allをサポートfound that。しかし知る良い方法はありません、ただ起動しますexeファイルと、それはGUIのダイアログを表示すると、だから私は、したがって、より安定した方法を探しています。良い解決策のように見えるしていません。
アイデアは歓迎というし、秩序を抽出して終了します望ん。

+0

です。プロジェクトタイプに関係なく、InstallShieldの任意のバージョンで生成されたsetup.exe特定のsetup.exeについては? –

+0

ありがとう@Christopher。質問を強化しようとしました。 – leiflundgren

答えて

30

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

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"
+1

FWIW MichaelはInstallShieldで動作します。また、組み込みリソースを探したり、DLLの依存関係を調べたりすることで、setup.exeの種類を推測できると思っています。私はMSI setup.exeがMSI.dllに依存しているのを見ています。私はInstallScript EXEがそうでないと推測しています。 –

+1

[類似の回答はこちら**](http://stackoverflow.com/a/24987512/129130)[pdfファイルへのリンク](http://www.itninja.com/static/090770319967727eb89b428d77dcac07) .pdf)に共通のsetup.exeコマンドラインを追加します。 –

+0

私の答えをここにチェックしてください:http://superuser.com/a/180980/47628 MSIベースのIS以外の一部のISセットアップで動作するツールについては、こちらをご覧ください。 – bshea

8

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

使い方:isxunpack.exe yourin stallshield.exe

同じフォルダに展開されます。

+0

これは、ShellExecute()を使用してプログラムで実行できます。 – Motes

+2

これはISv12インストーラを解凍するのに役立つ唯一のプログラムでした。このプログラムは問題を報告しましたが、とにかくすべてを抽出しました。 – TGP1994

+0

素晴らしいツール、共有ありがとう - @MichaelUrmanが言ったヒントは残念ながら、私の現在のインストーラの逆に動作します。 – Till

4

スタートで:

setup.exe /? 

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

+0

何度も動作しません –

1

cabextractと呼ばれるフリーでオープンソースのプログラムは、単に内容だけを一覧表示して抽出します。あまりにキャブファイルが、マクロビジョンのアーカイブ:Linuxの

% 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

cabextractは、Microsoftキャビネットファイルを含むものをアンパックしますが、通常は "data1.cab"というファイルがあるにもかかわらず、InstallShieldは動作しません。代わりに、InstallShieldの "cab"ファイルを解凍するには、SynCEプロジェクトの一部である[unshield](http://sourceforge.net/projects/synce/files/Unshield/0.6/)プログラムを使用してください。 –

+1

最近、SynCEは放棄されたようですが、[Unshieldは現在githubでホストされています](https://github.com/twogood/unshield) –

2

(GUIには、ライセンスキーのプロンプトのようなカスタム抑止力を含む場合であっても)私のためによく働いunshieldは、そこにあります。すべての主要なディストリビューション(arch、suse、debian-fedoraベース)のリポジトリに含まれています。ソースはhttps://github.com/twogood/unshield

関連する問題