0

アプリケーションの作業が終了しました。今度はそれを顧客に提供します。これは5MB未満の5ファイルのアプリケーションであるため、これを配信する最も簡単で無駄のない方法は、tempフォルダー内のすべてを解凍してからメインの実行可能ファイルを起動するように指示されたRARSFX/ZipSFXファイルとして行うことを決定しました。私のプロジェクトのファイル。

これまではすべて問題なく動作し、デフォルトの形式としてZipSFXを選択しましたが、問題は、パラメーター(つまり、-batch(ファイルのバッチを処理する)と-nolang(アプリをローカライズしない)を受け入れるようにメインのexeを設計したことです。 ZipSFXがパックされている場合、ユーザーは実際にパラメーターをメインexeではなくインストーラーに渡します。

パラメータをメインアプリケーションに「ルーティング」する方法はありますか?前もって感謝します。

4

2 に答える 2

1

ルートコメントは興味深いです...

unpack-run-cleanupシナリオでインストーラーを本当に望まないのであれば、インストーラーを探すことはあまりありません、私は同意します。1つのアプローチは、PortableAppsを検討することです。彼らは、はるかに複雑で厳密なプログラムでそのようなトリックを絶えず行い、おそらくそれを達成するための優れたツールを持っています。

別のアプローチは、必要なファイルをリソースとしてメインアプリケーションに保存し、%TEMP%に解凍してそこでフォームを使用し、終了時に削除することです。これが、SysInternalsツールが一時的なドライバーをインストールする方法です。最も基本的な方法は、MicrosoftResourceCompilerを使用することです。Delphiなどの一部の言語には、データを格納するためのネイティブコンポーネントがあります。

これを行うと、小さなスタブexeを作成し、メインアプリをドロップショットして実行し、完了とクリーンアップを待つか(メインプログラムのクラッシュよりも信頼性が高い)、メインプログラムにすべてを実行させることができます(ただし、ゴミが残ります)クラッシュしたり、異常な方法で終了した場合は、それ自体)UPXなどのツールがパックされたドロッパーを選択できますが、メインのexeとDLLはアンパックされたままにする必要があります。

一時ファイルにcachedirタグを付けて、迷子になったら自由に削除できるという小さなヒントを作ることができます。

于 2012-07-27T07:02:46.050 に答える
0

InnoSetupを見ましたか?Delphiで書かれているので、オーバーヘッドが少なくて使いやすいでしょう。簡単にスクリプトを作成して、いくつかのパラメーターをストリームに渡すことができると思います。


7-zip sfxを試しましたか?Operaのようないくつかのインストーラーはそれの後に作られています。

7-zipストックSFXは、パラメータをチェーンに渡すようです。 http://sourceforge.net/projects/sevenzip/forums/forum/45798/topic/4788506

7-zip拡張SFXには、残りのパラメーターをチェーンに渡すための特別なオプションがあります。 http://7zsfx.info/en/switches.html#breakcmdline

于 2012-07-26T09:38:25.210 に答える