共用方式為


封裝資源

目前為止,這個教學課程一直假您的資源使用單一預設語言。現在我們可以考慮比較複雜的案例,例如,多種文化特性有平行資源集。這樣您建構的單一應用程式,即可執行多種文化特性。換言之,您只要在 Run Time 時偵測使用者的文化特性並且載入適當的資源,即可為個人修改應用程式。您也可以用這個方法來修改資源 - 也許是更新字串,甚至於加入新的文化特性 - 不必重新編譯及散發整個應用程式。這在處理共用目錄中的資源以及多個使用者可以自動變更時,尤其方便。

這個教學課程中的二個當地語系化範例應用程式 (WorldCalcGraphic),使用私密附屬組件。私密是指不放在全域組件快取 (GAC) 中,附屬代表只是資源組件 (或 DLL),必須結合應用程式程式碼所在的其他主要組件一起使用。主要組件中還有預設或中性的文化特性資源,可以缺少某個當地語系化資源時使用。主要組件資源放在 .resources 檔案的應用程式目錄中,編譯器會將它們嵌入到組件中。您也可以事後使用組件連結器 (AL) 來嵌入這些資源。

**注意   **有關 AL 的詳細資訊,請參閱附錄 B:資源工具

若要共用資源組件,也就是要放在 GAC 中供多種應用程式使用,您必須在強式名稱中設定其他金鑰和版本資訊。此外,也許您想加入 SatelliteContractVersionAttribute 屬性來建立附屬資源組件版本 - 和主要組件分立,不必使用組態原則檔案。有關強式名稱組件的詳細資訊,請參閱封裝和部署 .NET Framework 應用程式

當您檢查每個應用程式時,請注意應用程式目錄的下方有一系列子目錄,每個子目錄都有一個名稱對應文化特性標記,裡面也含原始資源資訊,如果建置,還有對應的附屬組件。這個配置指出二個重點:一個特殊組件可以只含單一文化特性的資源,以及每個文化特性資源可以存入另一個根據文化特性標記命名的子目錄中。

字串 - WorldCalc 範例是在介紹字串當地語系化。字串存放在二個當地語系化文化特性 (德文的 de 和瑞士德文的 de-CH) 和應用程式目錄 (預設值是英文) 的 MyStrings.txt 檔案的名稱值配對中。

WorldCalc 範例應用程式的建置處理序 (在 Build.bat 中),執行下列步驟 (這裡顯示的邏輯組織,勝過實際的 Build.bat 檔案)。

  1. 建置 math.dll 和 parser.dll 元件:

    csc ... math.cs
    csc ... parser.cs
    
  2. 使用 Resgen.exe,建置預設 .resources 檔案和所有當地語系化的 .resources 檔案:

    resgen MyStrings.txt MyStrings.resources
    resgen MyStrings.de.txt MyStrings.de.resources
    resgen MyStrings.de-CH.txt MyStrings.de-CH.resources
    
  3. 使用 AL 來建立附屬組件,嵌入 (或連結) 資源,並且設定文化特性:

    al /out:WorldCalc.Resources.Dll /v:1.0.0.0 /c:de /embed:MyStrings.de.resources,MyStrings.de.resources,Private
    al /out:WorldCalc.Resources.Dll /v:1.0.0.0 /c:de-CH /embed:MyStrings.de-CH.resources,MyStrings.de-CH.resources,Private
    

    **注意   **文化特性字串不區分大小寫。

  4. 編譯應用程式本身,並且使用 /res 參數,連結預設資源:

    csc ... /target:winexe ... /addmodule:parser.dll /r:System.Windows.Forms.dll /r:System.Drawing.dll /r:System.dll /r:math\math.dll /res:MyStrings.resources WorldCalc.cs
    

    這是同等的 Visual Basic:

    vbc ... /target:winexe ... /addmodule:parser.dll /r:System.Windows.Forms.dll /r:System.Drawing.dll /r:System.dll /r:math\math.dll /res:MyStrings.resources WorldCalc.vb
    

若要加入其他文化特性,請建立適當的文字檔來包含資源,並且重複執行步驟 2 和 3。

影像 - Graphic 範例示範影像當地語系化。這個範例應用程式的建置處理序類似 WorldCalc 的處理序,但是它加入的單一步驟,可以將影像轉換為 .resx 檔案:

resxgen /i:un.jpg /o:Images.resx /n:flag
cd en
resxgen /i:en.jpg /o:Images.en.resx /n:flag
cd ..\en-au
...

請參閱

使用程式碼擷取資源 | 資源摘要 | 附錄 A:其他資源資訊 | 附錄 B:資源工具