我正在使用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属性后,是否需要另一个自定义操作来设置安装文件夹?如果是这样,在网站选择对话框完成后如何将其设置为第一个?或者,我得到了所有的碎片,但我还没有正确连接它们。
答案 0 :(得分:1)
为了将属性设置为另一个属性的值,您应该创建自定义操作:
<CustomAction Property="WEB_SITE_ROOT_PHYSICAL_PATH" Value="[WEB_SITE_ROOT]" />
当然,您应该在定义原始WEB_SITE_ROOT属性后安排此操作。
希望这有帮助。