2012-03-07 6 views
1

zip(DotnetZip、SharpZipLibなど)からファイルを抽出できるライブラリがいくつかありますが、抽出するファイルは実行可能です同じzipファイルにあると特定のファイルを抽出していますか?実行可能ファイルと同じzipファイルから特定のファイルを抽出する方法

1)ユーザーダブルクリックにその内容を表示するには、zipファイル:

は、ここに私のビジョンです。 2)exeをダブルクリックします 3)そのexeは、含まれているzipからいくつかのファイルを指定のディレクトリに抽出します。 4)このディレクトリには、現在必要なファイルがあります。 5)このディレクトリのexeが実行されます。

これは、既存のSFXソリューションとよく似ています。しかし、これらのどれも、この質問に記載された私のニーズを満たすことができないようです:How can I build a .Net application which is distributed as a single and self-contained file/entity (no installer)?

私はこれらの要件が奇妙に聞こえることを知っています。もし私がパワーを変えることができたら、私はMSIとXMLファイル、または2つを設定用に出荷するだけです。

もちろん、私は重大なフィードバックや質問を歓迎します。

答えて

0

エンドツーエンドでプロセスを制御しない限り、実際にはこれを行うことはできません。

Windows(XP以降)でzipファイルをダブルクリックすると、その内容が表示されます。ファイルにダブルクリックすると、そのファイルが一時ディレクトリにコピーされ、そこからファイルが実行されます(または適切なシェルハンドラがファイルに適用されます)。

このような状況が発生した場合、実行可能ファイル(またはファイルタイプを処理する実行可能ファイル)は、ファイルに関する限り、 "ちょっと、私がいた"と言う特殊なパラメータ/環境変数/インジケータを取得しませんあなたはちょうど別のディレクトリにいます。

さらに、シェルは、.zipファイルタイプを扱うことができるプログラムのみではなく、です。できるユーティリティがたくさんあります。そして、彼らはすべて、ファイルをダブルクリックして処理することになります。の場合は別です。

許可されていると、それらはファイルをコピーするためにすべて一時ディレクトリを使用するかもしれませんが、それを実行するには何もありません(慣例またはAPIを介して)同じ方法。

これを行う場合は、最初から最後まで、zipプロセスを制御するEXEを配布する必要があります(実際のをファイル内のリソースとしてパッケージ化することができます) )。

0

自己解凍型のexeがそのために発明されました。

このブートストラップはおそらく、ランタイムに依存しないC(++)、または何もない。ほとんどの場合、.netを持たないウィンドウボックスはほとんどありませんが、インストーラがどのように失敗するかを制御できます....

関連する問題