可选的属性列表节用于给出变量(称为“属性”)的定义和赋值,这些变量以后可在配置文件中使用。这一节中定义的属性定义称为“内部”属性。
<!-- define expandable properties --> <!-- optional --> <propertylist> <property name="projectname" value="myproject"/> <property name="projectdir" value="c:\myprojects"/> </propertylist>
也可以不在该节中定义变量(“属性引用”)就直接在配置文件中使用它们。例如,它们可能在命令行上定义或者来自于环境。
属性使用以下算法找到和属性相关联的值,再通过字符串替换来进行工作:
- 在外部属性列表中查找值。
- 如果未找到,则查找和属性同名的环境变量,
- 如果未找到,则在配置文件的属性列表节中查找内部定义,
- 如果仍未找到,则使用空字符串作为值。
在命令行上使用 –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. 保留所有权利。