方括号[]语法在WiX中意味着什么

时间:2014-05-29 13:12:25

标签: iis wix windows-installer

我正在使用WiX工具集并使用this手册为IIS网站创建安装程序。我发现了以下语法

<iis:WebSite Id="DemoWebsiteWebsite" Description='Demo Website' Directory='INSTALLFOLDER' AutoStart='yes' StartOnInstall='yes'>
  <iis:WebAddress Id="AllUnassigned" Port="80" />
  <iis:WebApplication Id="DemoWebsiteApplication" Name="[DemoWebsiteWebsite][WEBSITE_ID]" WebAppPool="DemoWebsiteAppPool"></iis:WebApplication>
</iis:WebSite>

我对[]语法以及此处使用网站ID的方式感到困惑。我需要使用用户输入的一些自定义值。所以我有以下问题:

  1. []语法在WiX中意味着什么?它与用于访问定义值的$()语法有何关联?
  2. 两个[]之后是否有任何其他含义,例如此处[DemoWebsiteWebsite][WEBSITE_ID]
  3. 为什么在[DemoWebsiteWebsite]表达式中使用了WebSite Id?这只是一个巧合或命名惯例吗?
  4. []中允许使用的允许值是多少?是否有任何类型的清单?
  5. 我在哪里可以找到有关此语法及其用例的其他信息?

1 个答案:

答案 0 :(得分:14)

这是将Windows Installer属性解析为实际值的方式。如果您在MSI对话框中输入了名为WEBSITE的属性,则可以通过将其放在方括号中来解析为实际值。这就是你看到[TARGETDIR],[SourceDir]等等的原因。大多数生成MSI文件的工具都使用该语法,因为它是Windows Installer的东西。

这是文档链接,它全部隐藏在这里:

Formatted Windows Installer

所以1 - 它们是MSI文件中的属性,可以是标准的Windows Installer属性,也可以是用户创建的属性:

Property Reference

和2,它们只是连接的两个属性。它们区分大小写,所以不要随意使用。在理解它们是安装程序属性之后,其他要点应该是清楚的。

WiX源中的$()值是编译时间 - 它们在构建时解析为实际值。 []值在安装时解析。