資源文件生成器 (Resgen.exe) 工具可使您創(chuàng)建 .resources 文件以及用來(lái)訪問(wèn)這些 .resources 文件的強(qiáng)類型包裝。創(chuàng)建強(qiáng)類型包裝時(shí),.resources 文件的名稱必須與生成的代碼的命名空間和類名(例如,MyNamespace.MyClass.resources)匹配。但是,資源文件生成器 (Resgen.exe) 工具允許您指定生成名稱不兼容的 .resources 文件的選項(xiàng)。若要避免此行為,請(qǐng)?jiān)谫Y源文件生成器 (Resgen.exe) 工具生成輸出文件后,重命名名稱不兼容的輸出文件。
用 Resgen.exe 創(chuàng)建完 .resources 文件后,請(qǐng)使用程序集鏈接器 (Al.exe) 將資源嵌入運(yùn)行庫(kù)二進(jìn)制可執(zhí)行文件或者將其編譯為附屬程序集。
資源文件生成器將 .txt 文件和 .resx(基于 XML 的資源格式)文件轉(zhuǎn)換為公共語(yǔ)言運(yùn)行庫(kù)二進(jìn)制 .resources 文件,該文件可嵌入運(yùn)行庫(kù)二進(jìn)制可執(zhí)行文件或編譯成附屬程序集。有關(guān)部署和檢索 .resources 文件的信息,請(qǐng)參見(jiàn)應(yīng)用程序中的資源。
Resgen.exe 執(zhí)行下列轉(zhuǎn)換:
將 .txt 文件轉(zhuǎn)換為 .resources 文件或 .resx 文件。
將 .resources 文件轉(zhuǎn)換為文本文件或 .resx 文件。
將 .resx 文件轉(zhuǎn)換為文本文件或 .resources 文件。
resgen [parameters] [/compile]filename.extension [outputFilename.extension] [/str:lang[,namespace[,class[,file]]]]
參數(shù)
參數(shù) | 說(shuō)明 |
---|---|
filename.extension | 要轉(zhuǎn)換的輸入文件的名稱。extension 必須是下列值之一: .txt 指定要轉(zhuǎn)換為 .resources 文件或 .resx 文件的文本文件的擴(kuò)展名。文本文件只能包含字符串資源。 .resx 指定要轉(zhuǎn)換為 .resources 文件或 .txt 文件的基于 XML 的資源文件的擴(kuò)展名。 .resources 指定要轉(zhuǎn)換為 .resx 文件或 .txt 文件的資源文件的擴(kuò)展名。 |
outputFilename.extension | 要?jiǎng)?chuàng)建的資源文件的名稱。 從 .txt 或 .resx 文件轉(zhuǎn)換時(shí),此參數(shù)是可選的。將文本文件或 .resx 文件轉(zhuǎn)換為 .resources 文件時(shí),可以指定 .resources 擴(kuò)展名。如果不指定 outputFilename,Resgen.exe 將在輸入 filename 參數(shù)中追加一個(gè) .resources 擴(kuò)展名并將該文件寫(xiě)入包含 filename 的目錄。 從 .resources 文件轉(zhuǎn)換時(shí),outputFilename 參數(shù)是強(qiáng)制的。將 .resources 文件轉(zhuǎn)換為基于 XML 的 .resources 文件時(shí),請(qǐng)指定 .resx 擴(kuò)展名。將 .resources 文件轉(zhuǎn)換為文本文件時(shí),請(qǐng)指定 .txt 擴(kuò)展名。只有當(dāng) .resources 文件僅包含字符串值時(shí),才應(yīng)將 .resources 文件轉(zhuǎn)換為 .txt 文件。 |
選項(xiàng) | 說(shuō)明 |
---|---|
/compile | 使您可以在單個(gè)批量操作中指定多個(gè)要轉(zhuǎn)換為 .resources 文件的 .resx 文件或 .txt 文件。如果不指定此選項(xiàng),則只能指定一個(gè)輸入文件參數(shù)。 |
/publicClass | 作為公共類創(chuàng)建強(qiáng)類型的資源類。 如果未使用“/str:”選項(xiàng),則忽略此選項(xiàng)。 |
/r: assembly | 指定將要從 assembly 加載的類型。如果指定此選項(xiàng),則具有某早期版本的類型的 .resx 文件將使用 assembly 中的類型。 |
/str:language[,namespace[,classname[,filename]]] | 使用 language 選項(xiàng)中指定的編程語(yǔ)言(C# 或 Visual Basic)創(chuàng)建強(qiáng)類型資源類文件。使用 namespace 選項(xiàng)可指定項(xiàng)目的默認(rèn)命名空間,使用 classname 選項(xiàng)可指定所生成的類的名稱,使用 filename 選項(xiàng)可指定類文件的名稱。 |
/usesourcepath | 指定輸入文件的當(dāng)前目錄將被用于解析相對(duì)文件路徑。 |
> 備注
Resgen.exe 通過(guò)包裝由下列四類實(shí)現(xiàn)的方法來(lái)轉(zhuǎn)換文件:
ResourceReader 類讀取 .resources 文件。
ResourceWriter 類從指定的資源創(chuàng)建 .resources 文件。
ResXResourceReader 類讀取 .resx 文件。
ResXResourceWriter 類從指定的資源創(chuàng)建 .resx 文件。
請(qǐng)注意,由 ResXResourceWriter 創(chuàng)建的 .resx 文件不能直接由 .NET Framework 應(yīng)用程序使用。在將該文件添加到應(yīng)用程序之前,通過(guò) Resgen.exe 運(yùn)行該文件以將其轉(zhuǎn)換為 .resources 文件。有關(guān)在代碼中實(shí)現(xiàn)這些類的更多信息,請(qǐng)參見(jiàn)它們各自的參考主題。
為了使 Resgen.exe 能夠分析輸入,.txt 文件和 .resx 文件遵循正確的格式是非常關(guān)鍵的。
文本文件只能包含字符串資源。如果需要將所編寫(xiě)的應(yīng)用程序中的字符串翻譯成多種語(yǔ)言,則字符串資源很有用。例如,通過(guò)使用適當(dāng)?shù)淖址Y源,可以很容易地本地化菜單字符串。Resgen.exe 讀取包含名稱/值對(duì)的文本文件,其中名稱是描述資源的字符串,值是資源字符串本身。必須在每行上分別指定每個(gè)名稱/值對(duì),如下例所示:
name=value
請(qǐng)注意,文本文件中允許使用空字符串。例如:
EmptyString=
Resgen.exe 檢查文本文件中是否有重復(fù)的資源名。如果文本文件包含重復(fù)的資源名,Resgen.exe 將發(fā)出警告,并忽略重復(fù)的名稱。