我正在使用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的方式感到困惑。我需要使用用户输入的一些自定义值。所以我有以下问题:
[]
语法在WiX中意味着什么?它与用于访问定义值的$()
语法有何关联?[]
之后是否有任何其他含义,例如此处[DemoWebsiteWebsite][WEBSITE_ID]
?[DemoWebsiteWebsite]
表达式中使用了WebSite Id?这只是一个巧合或命名惯例吗?[]
中允许使用的允许值是多少?是否有任何类型的清单?答案 0 :(得分:14)
这是将Windows Installer属性解析为实际值的方式。如果您在MSI对话框中输入了名为WEBSITE的属性,则可以通过将其放在方括号中来解析为实际值。这就是你看到[TARGETDIR],[SourceDir]等等的原因。大多数生成MSI文件的工具都使用该语法,因为它是Windows Installer的东西。
这是文档链接,它全部隐藏在这里:
所以1 - 它们是MSI文件中的属性,可以是标准的Windows Installer属性,也可以是用户创建的属性:
和2,它们只是连接的两个属性。它们区分大小写,所以不要随意使用。在理解它们是安装程序属性之后,其他要点应该是清楚的。
WiX源中的$()值是编译时间 - 它们在构建时解析为实际值。 []值在安装时解析。