共用方式為


屬性清單和屬性

選擇性的屬性清單區段可以用來定義和指派變數 (稱為「屬性」),這些屬性稍後可以使用於組態檔中。此區段中所定義的屬性稱為「內部」屬性。

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

變數 (「屬性參考」) 也可以不在這個區段定義就直接使用於組態檔中,例如,變數可能在命令列中定義,也可能來自於環境。

屬性是使用下列演算法來找到與其關聯的值,透過字串替代來運作:

  1. 檢查外部屬性清單來找尋某個值。
  2. 如果找不到,檢查有沒有與這個屬性名稱相同的環境變數,
  3. 如果還是沒有,請檢查組態檔的 propertylist 區段中有沒有內部定義,
  4. 如果仍然找不到,就使用空字串當做這個值。

外部屬性是在命令列上使用 –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.