我正在使用 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?或者,我是否得到了所有部件,但我只是没有正确连接它们。