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

Pav*_*l K 4 iis windows-installer wix

我正在使用WiX工具集和使用本手册为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>
Run Code Online (Sandbox Code Playgroud)

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

  1. 什么是[]语法维克斯是什么意思?它与$()用于访问定义值的语法有何关联?
  2. []像这里一样,两个人是否有任何额外的意义[DemoWebsiteWebsite][WEBSITE_ID]?
  3. 为什么在[DemoWebsiteWebsite]表达式中使用WebSite Id ?这只是一个巧合或命名惯例吗?
  4. 内部使用的允许值是[]多少?他们有什么样的清单吗?
  5. 我在哪里可以找到有关此语法及其用于的案例的其他信息?

Phi*_*lDW 15

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

这是doc链接,它隐藏在这里:

格式化Windows Installer

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

物业参考

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

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

  • 根据定义,如果在括号中有一个属性,那么必须有某个地方创建该属性,如果无法找到引用,WiX构建将会出错.困难在于您可以通过指定它们来创建属性,包括在msiexec命令行上,并且没有用户定义属性的默认值列表,除非它们位于MSI文件的Property表中,使用Property Id元素在WiX中. (2认同)