Wix 目录如何工作?

标签 wix windows-installer 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">
...

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

但是为了让用户改变安装路径,他们必须传入一个绝对路径,例如
INSTALLPATH="C:\InetPub\wwwroot\CustomWebsiteFolder"
  • 这是如何运作的?它是否会忽略其他目录元素 TARGETDIR 和 IISROOTPATH?
  • 如何将 INSTALLPATH 更改为仅 WEBSITEFOLDERNAME,以便用户只需要传入文件夹名称而不是绝对安装路径。从而迫使用户总是安装到inetpub?
  • 最佳答案

    您应该了解 Directory表 - 目录元素背后的 MSI 概念。我见过的最好的解释是 a set of Rob's articles (链接是第 1 部分,有 6 个部分,如果我没记错的话)。

    关于Wix 目录如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6602891/

    相关文章:

    .net - WIX 将新文件添加到共享组件

    Wix 组件条件

    wix - 如何在 WiX 中的 ="InstallValidate"之后执行删除现有产品之前的自定义操作

    c# - MsiQueryProductState如何判断安装了VC++

    wix - BrowseDialog 和 InstallDirDlg wix

    WiX 刻录引导运行不同的 InstallCommand 参数进行静默安装

    wix - 利用 heat.exe 并获取已本地化的文件名,并使用 wix 将它们包含到 msi 中

    windows - WiX 安装程序 : How to switch to repair-mode if already installed?

    wix - 如何从每个用户安装更改为所有用户安装?

    WiX 服务安装程序和自定义安装事件