1

内部で別のセットアップを開始するInno-Setupがあります。(InnoSetupで完全に再構築したいのですが、まだ時間がありませんでした。)

この内部セットアップを実行するには、いくつかのzipファイルを提供する必要があります。現在、これらのzipファイルを手動で作成し、InnoSetup-Folderにコピーしています。私の考えは、InnoSetupコンパイルプロセスにそれらのzipファイルを作成させることです。必要なファイルは、異なる(ただし固定された)フォルダーにあります。

そうするオプションはありますか?

より視覚的な例を次に示します。

  • C:\ dir1 \ File1
  • C:\ dir2 \ File2
  • C:\ dir3 \ File3
  • C:\ dir4 \ File4
  • C:\ dir5 \ File5
  • C:\ dir6 \ File6

  • Zip1にはFile1とFile2が含まれています
  • Zip2にはFile3とFile4が含まれています
  • Zip3にはFile5とFile6が含まれています

現在のプロセス

  • Zip1-3は手動でビルドされます
  • 3つのzipファイルすべてが1つの完全なInnoSetup.exeファイルにコンパイルされます
  • インストールの実行中に、zipファイルが一時フォルダーにコピーされます
  • 外部セットアップツールは、tempフォルダーからこれらのzipファイルを処理します。

望ましいプロセス

  • Zip1-3はInnoSetupによって自動的にビルドされます
  • 残りは現在のプロセスと同じです

アドバイスありがとうございます

4

1 に答える 1

3

TUGZipを使用してアーカイブにファイルを追加するにはどうすればよいですか?

非常にエキゾチックですが、スクリプトに適したアーカイバを使用しています。つまり、TzScript.exe次のようにアーカイバのコマンドラインツール用のスクリプトファイルを作成できます。Archiveプロパティにアーカイブのターゲット名を割り当て、適切なファイルを使用して、アーカイブにWorkingDir追加Dataするファイルを配置します。アーカイブ名をハードコーディングしましたが、このスクリプトファイルでさえInnoSetupプリプロセッサで作成できます(ただし、これはこの質問の範囲を超えています)。

function main()
{
     var Comp = new Compress();

     Comp.Archive = "d:\\DeployFolder\\Archives\\Archive1.zip";
     Comp.Type = "ZIP";
     Comp.Compression = 3;
     Comp.WorkingDir = "d:\\ArchiveFolder\\";
     Comp.Data = "File1.txt,File2.txt";
     Comp.Password = "";
     Comp.DateExtension = 0;
     Comp.TimeExtension = 0;
     Comp.Overwrite = 1;
     Comp.Recurse = 0;
     Comp.StoreFolderNames = 1;
     Comp.IncludeHiddenFiles = 1;

     Comp.DoCompress();
}

InnoSetupスクリプトをコンパイルする前にTUGZipコマンドラインアーカイバを実行するにはどうすればよいですか?

これをInnoSetupスクリプトに入れるよりもはるかに簡単なのは、バッチファイルを作成することです。これにより、アーカイバですべての処理が実行され、デプロイフォルダーにコピーされた新しいアーカイブで完了した後、InnoSetupのコンパイルが開始されるか、InnoSetupが開きます。スクリプトファイル。

これをInnoSetupスクリプトに含めたい場合は、プリプロセッサのExec関数を使用する必要があります。これはプリプロセッサ関数であるため、InnoSetupスクリプトのコンパイルが開始される前に実行されるため、このようなことができる理想的な場所です。

于 2013-01-29T10:37:31.243 に答える