2

InstallShieldMSBuildターゲットを使用してInstallShieldプロジェクトをビルドしています。パス変数のオーバーライドに苦労してきました。私がしていることは、InstallShieldビルドによって検出されないようです。ヘルプページはあまり役に立ちませんでした...役に立ちました。

4

1 に答える 1

7

ドキュメントで扱われていないいくつかの落とし穴があります。.isprojファイルで、パスオーバーライドをそのようにItemGroup内に配置します。アイテムには「InstallShieldPathVariableOverrides」という名前を付け、「PathVariable」要素を1つ含める必要があります。

<!-- Override Path Variables for the project -->
<ItemGroup>
  <InstallShieldPathVariableOverrides Include="$(AnMSBuildVariable)\Win32\Installer">
    <PathVariable>MY_BUILD_PATH</PathVariable>
  </InstallShieldPathVariableOverrides>
  <InstallShieldPathVariableOverrides Include="$(AnMSBuildVariable)\Win32\Installer\Reports">
    <PathVariable>MY_REPORTS_PATH</PathVariable>
  </InstallShieldPathVariableOverrides>
</ItemGroup>

また、オーバーライドされたパスを含む子パス変数がある場合は、それらもオーバーライドする必要があります。継承は、継承されたオーバーライドを取得しません。(例を参照してください。元のパス変数はMY_REPORTS_PATHをMY_BUILD_PATH \ Reportsとして定義している可能性がありますが、明示的にオーバーライドする必要があります。)

于 2009-09-23T12:47:00.353 に答える