代码之家  ›  专栏  ›  技术社区  ›  dommer

如何动态设置MSI安装文件夹

  •  0
  • dommer  · 技术社区  · 14 年前

    我已经完成了“选择网站”部分。我有一个自定义操作,它根据所选站点设置一组属性。其中一个属性(网站根目录物理路径)是指向网站根文件夹的路径。

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

    我的目录结构如下:

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

    IIS\ WEB\根定义为:

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

    网站\u根\u物理\u路径设置为网站\u根,如下所示:

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

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

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

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

    1 回复  |  直到 14 年前
        1
  •  1
  •   Yan Sklyarenko    14 年前

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

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

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