0

C++、Java、およびそれぞれの InstallShield インストーラーの 3 種類のプロジェクトをビルドするビルド スクリプトがあります。

現在、インストーラー ビルド スクリプトは、C++ プロジェクトが常にリリース構成でビルドされるという事実に依存しています。

しかし今、追加の構成、つまりプロファイルでそれらを構築できるようにしたいと考えています。

Jenkins CI サーバーを使用しているため、目的の構成は専用の Jenkins ビルド パラメーターを通じて提供さDRIVER_PROXY_CONFIGれ、同じ名前の環境変数として表示されます。

今問題。InstallShield 担当者によると、IS はソース ファイル パスの一部で環境変数を使用できません。私は引用します:

「環境変数」または「InstallShield で定義されたユーザー定義パス変数」をファイル パスとして使用できます。

だから私たちはできる:

  1. コンポーネントごとに「環境変数」を作成します (「DRIVER_PROXY_CONFIG」はコンポーネント パスの一部にすぎないため)。望ましくありません。
  2. コンポーネント「ユーザー定義パス変数」の「環境変数」部分を作成します。不可能です。試してみました。

誰かがこのようなことをしましたか?インストーラーは、さまざまな場所にある複数のソース ファイルに依存します。このような場所のパスの一部は、DRIVER_PROXY_CONFIG環境変数の値です。この部分は、パスのプレフィックスでもサフィックスでもないことに注意してください。

4

3 に答える 3

2

マイケル:

'env'がパス("SomeDir\<env>\SubDir")のプレフィックスでもサフィックスでもない場合はどうなりますか?

システムconfig=release
環境を作成しました。環境を参照するIS変数「MyConf」を作成しました。「config」
を作成しました。IS標準パスを作成しました。MyPath = "SomeDir\<MyConf>\SubDir"

このパスからファイルを追加した場合-ISは提案されたパスとして「MyPath」を提案しません!!!

私が見つけた唯一の方法は、ファイルを追加してから、Fileテーブルに直接アクセスしてISBuildSourcePathを更新することです。

于 2012-11-29T14:57:01.900 に答える
2

パスの一部として絶対に作成できます。一部の正確な動作は InstallShield のバージョンによって異なりますが、最後のいくつかについては、相対親ディレクトリを使用することもできます。パス変数ビューに移動し、新しい環境パス変数 (たとえばEnv) を追加し、それが参照する環境変数を設定するだけです。Stn次に、として定義されている任意の数の標準パス変数 (たとえば ) を追加するか、<Env>\Sub\Dirこの手順をスキップしISBuildSourcePathて関連ファイルのそれらを参照するだけです。通常、定義されたパス変数の下のパスからファイルを追加すると、そのパス変数がパスの一部として使用されます。

既にファイルを追加している場合は、ここでソース パスの変換ウィザードが役立ちますが、ファイル テーブルに直接アクセスしてファイルを更新する方が簡単な場合があります。ISBuildSourcePath

ただし、少なくとも 1 つの例外があります。環境変数に値がSubあり、完全なディレクトリ名がSubDirectoryである場合、常に を参照できるとは限りません<Env>Directory。通常、パス変数のサポートにより、Sub\Directory代わりにそれが変換されます。

于 2012-11-29T13:12:13.563 に答える