GenerateResource 工作
更新:2007 年 11 月
在 .txt 和 .resx (XML 架構資源格式) 檔案,以及 Common Language Runtime 二進位 .resources 檔案 (可以內嵌在執行階段二進位可執行檔,或是編譯到附屬組件中) 之間轉換。這項工作通常用來將 .txt 或 .resx 檔轉換成 .resource 檔。GenerateResource 工作的功能類似於 resgen.exe。
參數
下表說明 GenerateResource 工作的參數。
參數 |
說明 |
---|---|
FilesWritten |
選擇性的 ITaskItem[] 輸出參數。 包含所有寫入磁碟的檔案名稱。這會包括快取檔 (若有的話)。這個參數對於 Clean 的實作相當有用。 |
OutputResources |
選擇性的 ITaskItem[] 輸出參數。 指定所產生檔案 (例如 .resources 檔) 的名稱。如果沒有指定名稱,便會使用符合的輸入檔名稱,而且建立的 .resources 檔會置於含有輸入檔的目錄中。 |
PublicClass |
選擇性的 Boolean 參數。 如果為 true,則建立強型別 (Strongly Typed) 資源類別做為公用類別。 |
References |
選擇性 (Optional) String[] 參數。 要從中載入 .resx 檔案中之型別的參考。Resx 檔案資料項目可能具有 .NET 型別。在讀取 .resx 檔時,就必須解析這個型別。通常使用標準的型別載入規則即可順利解析。如果 References 中有提供組件,則這些組件具有較高的優先順序。 強型別 (Strongly Typed) 資源不需要這個參數。 |
Sources |
必要的 ITaskItem[] 參數。 指定要轉換的項目。傳入此參數的項目必須具有下列其中一種副檔名:
|
StateFile |
選擇性 ITaskItem 參數。 指定選擇性快取檔的路徑,其用途為加速 .resx 輸入檔中連結的相依性檢查。 |
StronglyTypedClassName |
選擇性 String 參數。 指定強型別資源類別的類別名稱。如果沒有指定此參數,則會使用資源檔的主檔名 (Base Name)。 |
StronglyTypedFilename |
選擇性 ITaskItem 參數。 指定原始程式檔的檔名。如果沒有指定此參數,則會使用類別的名稱做為基底檔名,副檔名則依據使用的語言而定。例如:MyClass.cs。 |
StronglyTypedLanguage |
選擇性 String 參數。 指定產生強型別資源的類別來源時,所使用的語言。這個參數必須完全符合 CodeDomProvider 所使用的其中一種語言。例如:VB 或 C#。 藉由傳遞值給這個參數,您可以指示工作產生強型別資源。 |
StronglyTypedNamespace |
選擇性 String 參數。 指定強型別資源產生的類別來源所使用的命名空間。如果沒有指定此參數,所有的強型別資源都會位於全域命名空間中。 |
UseSourcePath |
選擇性的 Boolean 參數。 如果為 true,則指定使用輸入檔的目錄來解析相對檔案路徑。 |
備註
由於 .resx 檔可能含有其他資源檔的連結,如果只是比較 .resx 和 .resource 檔案時間戳記以查看輸出是否是最新的,這樣還不夠。反之,GenerateResource 工作會追溯 .resx 檔中的連結,並檢查連結檔案的時間戳記。這表示您在含有 GenerateResource 工作的目標上,不應該只使用 Inputs 和 Outputs 屬性 (Attribute),因為這可能會造成略過原本應該執行的工作。
範例
下列範例使用 GenerateResource 工作,從 Resx 項目集合所指定的檔案中產生 .resources 檔。
<GenerateResource
Sources="@(Resx)"
OutputResources="@(Resx->'$(IntermediateOutputPath)%(Identity).resources')">
<Output
TaskParameter="OutputResources"
ItemName="Resources"/>
</GenerateResource>