属性列表和属性

可选的属性列表节用于给出变量(称为“属性”)的定义和赋值,这些变量以后可在配置文件中使用。这一节中定义的属性定义称为“内部”属性。

<!-- define expandable properties -->
<!-- optional -->
<propertylist>
<property name="projectname" value="myproject"/>
<property name="projectdir" value="c:\myprojects"/>
</propertylist>

也可以不在该节中定义变量(“属性引用”)就直接在配置文件中使用它们。例如,它们可能在命令行上定义或者来自于环境。

属性使用以下算法找到和属性相关联的值,再通过字符串替换来进行工作:

  1. 在外部属性列表中查找值。
  2. 如果未找到,则查找和属性同名的环境变量,
  3. 如果未找到,则在配置文件的属性列表节中查找内部定义,
  4. 如果仍未找到,则使用空字符串作为值。

在命令行上使用 –p 选项将外部属性传入。有三个内置的外部属性:

  • “applicationdir”,它反映 Dotfuscator 的安装目录。
  • “appdatadir”,它反映 Dotfuscator 的本地数据目录。
  • “configdir”,它反映配置文件所在的目录。

如果配置文件作为多个项目的模板、同一项目不同版本的模板,或跨不同生成环境的简单可移植程序的模板,那么在创建这种配置文件时属性将十分有用。

使用以下语法引用属性:

${property_name}

属性引用区分大小写,所以 ${MyProjectDir}${myprojectdir} 将引用不同的属性。

在配置文件中,不是任何地方都可使用属性引用。当前,属性引用仅可用作 <file> 元素的“dir”或“name”属性的值。下面是使用 <file> 元素的节的列表:

inputassembly mapinput mapoutput
output tempdir assembly
removalreport transform key
loadpaths program filelist

在配置文件中的任何其他地方都按字面含义解释属性引用。

属性引用不能嵌套。将它们嵌套会导致错误。

下面是实际使用的属性引用的一个示例:

<output> 
<file dir="${testdir}\output"/>
</output>

© 2002-2007 PreEmptive Solutions. 保留所有权利。