1 つの .iss ファイルが同時に異なるセットアップ exe を生成することは可能ですか? おそらく複数の [Setup] セクションがありますか?
2 に答える
同時に複数の出力セットアップ exe を作成することはできませんが、1 つのスクリプトから複数作成することは可能です。
重要なのは、ISPP の#define
and #ifdef
or#if
ディレクティブを使用して、特定の変数が定義されているか、特定の値が与えられている場合にのみコンパイルされるスクリプトの部分を指定することです。iscc
その後、バッチ スクリプトを使用して/dVAR
または/dVAR="VALUE"
パラメータ ( a に相当)を呼び出して、#define
コンパイルごとに異なる条件を選択できます。
ただし、これは、スクリプトの大部分が同じ場合にのみ非常に役立ちます (たとえば、最大のエディションのすべてのファイルを含めて実行時にどれをインストールするかを決定するのではなく、アプリケーションのさまざまな「エディション」に個別のインストーラーを作成する場合)。 . スクリプトが互いに完全に異なる場合は、個別のスクリプトを作成し、バッチ ファイルまたは自動ビルド スクリプトからコンパイルする必要があります。
テスト結果:
簡単なテストを実行すると... いいえ、これは不可能です。最初に、スクリプトのいくつかの場所にセクションを導入できます。スクリプトで次のことができると考えてください。
[Setup]
AppName=My Program 1
AppVersion=1.5
[Files]
Source: "MyProg.exe"; DestDir: "{app}"
[Setup]
DefaultDirName={pf}\My Program
このことから、1 つのスクリプト ファイルに複数のセクションのスクリプトを記述できる場合、コンパイラはどの[Setup]
セクションがどのセットアップに属しているかを認識しないことがわかります。
回避策:
ただし、ビルド プロセスを基本レベルで自動化する必要がある場合は、バッチ ファイルを作成し、すべてのスクリプトに対してコマンド ラインからコンパイラを実行できます。the reference
コマンド ライン コンパイラの使用についてを参照してください。
OutputBaseFilename
同じ出力ディレクトリで複数のスクリプトをコンパイルする場合は、スクリプト ファイルごとに異なる値のディレクティブ (出力 exe 名) を指定することを忘れないでください。