.jpg)
選擇性的屬性清單區段可以用來定義和指派變數 (稱為「屬性」),這些屬性稍後可以使用於組態檔中。此區段中所定義的屬性稱為「內部」屬性。
<!-- define expandable properties -->
<!-- optional -->
<propertylist>
<property name="projectname" value="myproject"/>
<property name="projectdir" value="c:\myprojects"/>
</propertylist>
變數 (「屬性參考」) 也可以不在這個區段定義就直接使用於組態檔中,例如,變數可能在命令列中定義,也可能來自於環境。
屬性是使用下列演算法來找到與其關聯的值,透過字串替代來運作:
- 檢查外部屬性清單來找尋某個值。
- 如果找不到,檢查有沒有與這個屬性名稱相同的環境變數,
- 如果還是沒有,請檢查組態檔的 propertylist 區段中有沒有內部定義,
- 如果仍然找不到,就使用空字串當做這個值。
外部屬性是在命令列上使用 p 選項傳入,有三種內建的外部屬性:
- "applicationdir" 是反映 Dotfuscator 的安裝目錄。
- "appdatadir" 是反映 Dotfuscator 的本機資料目錄
- "configdir" 則是反映組態檔所在的目錄
如果組態檔要做為多個專案的範本,或使用於同一專案的不同版本,或為尋求在不同建置環境的簡單可攜性,則屬性對於建立組態檔將會很有用處。
要參考某一屬性可以使用下列的語法:
${property_name}
屬性參考必須區分大小寫,因此,${MyProjectDir} 與 ${myprojectdir} 兩者會參考不同的屬性。
屬性參考在組態檔中不是隨處都可使用。就目前而言,屬性 (Property) 參考只能在 <file> 項目的 "dir" 或 "name" 屬性 (Attribute) 中做為值,以下是使用 file 項目的區段清單:
| inputassembly | mapinput | mapoutput |
| output | tempdir | assembly |
| removalreport | transform | key |
| loadpaths | program | filelist |
在組態檔中其他的任何地方,屬性參考都會按照字面的意思解譯。
屬性參考不可以是巢狀結構,巢狀的屬性將會產生錯誤。
以下是屬性參考的運用範例:
<output>
<file dir="${testdir}\output"/>
</output>
© 2002-2007 PreEmptive Solutions. All rights reserved.