0

WiX を使用して Web アプリケーションのインストーラーを作成しています。ユーザーが IIS サーバー上のサイトのリストから Web サイトを選択できるようにし、その Web サイトのルート フォルダーのサブディレクトリにアプリをインストールできるようにしたいと考えています。

「ウェブサイトの選択」の部分を終了しました。選択したサイトに基づいて一連のプロパティを設定するカスタム アクションがあります。これらのプロパティの 1 つ (WEB_SITE_ROOT_PHYSICAL_PATH) は、Web サイトのルート フォルダーへのパスです。

ただし、アプリケーションをそのパスにインストールすることはできません。

私のディレクトリ構造は次のとおりです。

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="IIS_WEB_ROOT">
    <Directory Id="WEB_SITE_ROOT" Name=".">
      <Directory Id="INSTALLLOCATION" Name="$(var.ProductName)">

IIS_WEB_ROOT は次のように定義されています。

<Property Id="IIS_WEB_ROOT">
  <RegistrySearch Id="Search" Root="HKLM" Key="Software\Microsoft\InetStp" Name="PathWWWRoot" Type="raw" />
</Property>

WEB_SITE_ROOT_PHYSICAL_PATH は、次のように WEB_SITE_ROOT に設定されます。

<Property Id="WEB_SITE_ROOT_PHYSICAL_PATH" Value="WEB_SITE_ROOT"/>

インストール フォルダ ダイアログの前に、Web サイト選択ダイアログが表示されます。インストール フォルダ ダイアログでは、次の「標準プロパティ」が使用されます。

<Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION"/>

これらすべての結果として、アプリケーションは Web サイトのルート フォルダーではなく、IIS Web ルート フォルダーにインストールされます。

インストールフォルダーを動的に定義された WEB_SITE_ROOT_PHYSICAL_PATH プロパティに設定する方法がわかりません。正しい方向への指針が必要です。WEB_SITE_ROOT_PHYSICAL_PATH プロパティを設定した後、インストール フォルダを設定するために別のカスタム アクションが必要ですか? その場合、Web サイトの選択ダイアログが完了した後、これを最初に設定するにはどうすればよいですか? または、すべての部品を入手しましたが、正しく配線していません。

4

1 に答える 1

1

プロパティを別のプロパティの値に設定するには、カスタム アクションを作成する必要があります。

<CustomAction Property="WEB_SITE_ROOT_PHYSICAL_PATH" Value="[WEB_SITE_ROOT]" />

もちろん、元の WEB_SITE_ROOT プロパティが定義された後に、このアクションをスケジュールする必要があります。

お役に立てれば。

于 2010-09-15T16:10:29.673 に答える