0

我正在使用 WiX 创建一个 Web 应用程序安装程序。我想让用户从 IIS 服务器上的站点列表中选择网站,然后将应用程序安装在该网站根文件夹的子目录中。

我已经完成了“选择网站”部分。我有一个自定义操作,可以根据所选站点设置一堆属性。这些属性之一 (WEB_SITE_ROOT_PHYSICAL_PATH) 是网站根文件夹的路径。

但是,我无法让应用程序安装到该路径。

我的目录结构如下:

<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"/>

网站选择对话框显示在安装文件夹对话框之前。安装文件夹对话框使用以下“标准属性”:

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

所有这一切的结果是应用程序安装到 IIS Web 根文件夹中 - 而不是网站根文件夹。

我只是不确定如何将我的安装文件夹设置为我动态定义的 WEB_SITE_ROOT_PHYSICAL_PATH 属性。我需要一些正确方向的指示。设置 WEB_SITE_ROOT_PHYSICAL_PATH 属性后,是否需要其他自定义操作来设置安装文件夹?如果是这样,我如何在网站选择对话框完成后将其设置为 first?或者,我是否得到了所有部件,但我只是没有正确连接它们。

4

1 回答 1

1

为了将该属性设置为另一个属性的值,您应该编写一个自定义操作:

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

当然,您应该在定义原始 WEB_SITE_ROOT 属性之后安排此操作。

希望这可以帮助。

于 2010-09-15T16:10:29.673 回答