Wix目录如何工作?

Edm*_*g99 5 windows-installer wix wix3.5

我正在尝试构建WIX安装程序,该安装程序允许用户通过命令行参数指定安装路径。

<Property Id="IISROOTPATH">
   <RegistrySearch Id="FindInetPubFolder" Root="HKLM" Key="SOFTWARE\Microsoft\InetStp" Name="PathWWWRoot" Type="directory" />
</Property>    
...
<Directory Id="TARGETDIR" Name="SourceDir">
   <Directory Id="IISROOTPATH">
      <Directory Id="INSTALLPATH" Name="WebsiteFolder">
...
Run Code Online (Sandbox Code Playgroud)

如果用户未传递任何参数,它将在iisroot文件夹中查找注册表,并将文件安装在名为“ WebsiteFolder”的文件夹下

但是,为了使用户能够更改安装路径,他们必须通过绝对路径,例如

INSTALLPATH="C:\InetPub\wwwroot\CustomWebsiteFolder"
Run Code Online (Sandbox Code Playgroud)
  1. 这是如何运作的?然后是否忽略其他目录元素TARGETDIR和IISROOTPATH?

  2. 如何将INSTALLPATH更改为WEBSITEFOLDERNAME,以便仅要求用户输入文件夹名称,而不是绝对安装路径。从而迫使用户始终安装到inetpub中吗?

Yan*_*nko 5

您应该了解目录表 - 目录元素背后的 MSI 概念。我见过的最好的解释是一组 Rob 的文章(链接是第 1 部分,有 6 部分,如果我没记错的话)。