Share via


Windows 8.1 市集應用程式:確保不論裝置是否需要,一律在裝置上安裝資源

 

適用於 Windows 和 Windows Phone

只要在應用程式套件內包含各種資源,就能確保在安裝應用程式時,這些資源都會隨著應用程式安裝在每部裝置上,而不必顧慮真正需要的是哪些資源。例如,當使用者安裝應用程式時,您可以確保多國語言的使用者介面字串會隨著應用程式一併安裝,而非只安裝符合該裝置之使用者語言喜好設定的語言。如果您使用這個策略,使用者就可以變更語言喜好設定或其他設定而不必連接至網際網路,而且其裝置也可以切換成適用於新設定的最佳資源。

在應用程式套件中加入資源,也會增加應用程式的大小。如果您要減少應用程式的大小,請於資源套件中包含使用者可於之後下載的資源。對於大部分應用程式而言,資源套件透過最小的所需空間提供最佳的經驗,但是資源套件不一定適合某些應用程式,例如多語系字典、翻譯工具,或是其他必須立即轉換語言的應用程式。這些應用程式包含應用程式套件中的各種資源。

您也可以加入組態檔,將資源納入應用程式套件中。或者,如果您不介意,也可以直接編輯專案檔來完成這項工作。

選項 1:將組態檔加入至方案

  1. 在 [方案總管] 中,以滑鼠右鍵按一下應用程式的專案,然後指向 [加入],再按一下 [新項目]。

  2. 按一下 [加入新項目] 對話方塊中的 [XML 檔案] 範本,然後將檔案命名為 priconfig.packaging.xml,再按一下 [加入]。

  3. 以下列 XML 取代檔案的內容。

    <packaging>
        <autoResourcePackage qualifier="Language" />
        <autoResourcePackage qualifier="Scale" />
        <autoResourcePackage qualifier="DXFeatureLevel" />
    </packaging>
    
  4. 移除表示資源分類,且不希望包含在資源套件中的 XML 內容。下列範例顯示移除 Language 限定詞之後的 priconfig.packaging.xml 檔案內容:

    <packaging>
        <autoResourcePackage qualifier="Scale" />
        <autoResourcePackage qualifier="DXFeatureLevel" />
    </packaging>
    

    在此範例中,所有語言資源都會包含在應用程式套件組合的應用程式套件內,因此無論裝置的使用者語言喜好設定為何,使用者都將下載這些資源。

  5. 儲存後關閉 priconfig.packaging.xml 檔案。

  6. 如果您移除 Language 辨識符號,請將另一個名為 priconfig.default.xml 的 XML 檔案加入專案,並且以下列 XML 取代該檔案的內容。

    <default>
      <qualifier name="Language" value=Value />
    </default>
    
    System_CAPS_note注意事項

    如果移除 Scale 或 DXFeatureLevel 辨識符號,但移除 Language 辨識符號,則不需要將 priconfig.default.xml 檔案加入專案中。

    請以您想要包含在應用程式套件中的每種語言資源的語言代碼,取代預留位置。下列範例是語言代碼清單取代語言辨識符號的預留位置後,所顯示的 XML 內容。

    <default>
      <qualifier name="Language" value=”en;ja;de” />
      </default>
    
  7. 在 [方案總管] 中,按一下 [priconfig.packaging.xml] 檔案。

  8. 在 [屬性] 視窗中,視專案語言變更下列屬性的值。

    • 如果是 C# 與 VB 專案,請將 [建置動作] 屬性設定為 [無]。

    • 如果是 JavaScript 專案,請將 [封裝動作] 屬性設定為 [無]。

    • 如果是 C++ 專案,請將 [內容] 屬性設定為 [False]。

  9. 如果您已將 priconfig.default.xml 檔案加入專案中,請根據專案的語言將該檔案的 [建置動作] 屬性設定為 [無]、[封裝動作] 屬性設定為 [無],或 [內容] 屬性設定為 [False]。

  10. 按一下 [建置] 功能表上的 [建置方案],然後建立應用程式套件。

    在 [建立應用程式套件精靈] 的 [選取和設定套件] 頁面中,選擇為套件產生應用程式套件組合。請參閱建立 Windows 8.1 應用程式套件

  11. ProjectFolder[\obj\]ReleaseConfiguration 資料夾中,開啟 [記事本] 中的 split.priconfig.xml 檔案。

  12. 確定您移除的限定詞並未出現在資源限定詞清單中。

重新命名 priconfig.packaging.xml 檔案

您可以隨意命名組態檔。請注意,如果您不是將檔案命名為 priconfig.packaging xml,則必須將建置屬性加入專案檔。

  1. 在 [方案總管] 中應用程式的專案上按一下滑鼠右鍵,然後按一下 [卸載專案]。

  2. 再以滑鼠右鍵按一下專案,然後按一下 [編輯] AppName[.csproj] 或 [編輯] AppName[.vbproj]。

  3. 在專案檔中第一個 <PropertyGroup> 項目的開頭和結尾標記之間加入下列 XML 內容。

    <AppxPriConfigXmlPackagingSnippetPath>FilePath</AppxPriConfigXmlPackagingSnippetPath>
    

    重要

    以包括檔案名稱在內的組態檔路徑取代 FilePath

  4. 儲存並關閉專案檔。

  5. 在 [方案總管] 中,以滑鼠右鍵按一下專案,然後按一下 [重新載入專案]。

  6. 建置方案,然後建立套件。

System_CAPS_note注意事項

如果您已將 priconfig.default.xml 檔案加入專案中,也可以重新命名該檔案。如需如何重新命名該檔案的詳細資訊,請參閱重新命名 priconfig.default.xml 檔案

選項 2:修改專案檔 (進階)

  1. 在 [記事本] 中開啟應用程式的專案檔。

  2. 在專案檔中第一個 <PropertyGroup> 項目的開頭和結尾標記之間加入下列 XML 內容。

    <AppxBundleAutoResourcePackageQualifiers>Language|Scale|DXFeatureLevel</AppxBundleAutoResourcePackageQualifiers>
    
  3. 移除這行 XML 內容中,不希望包含在資源套件中的資源分類。下列範例顯示移除 Language 限定詞之後的 XML 內容。

    <AppxBundleAutoResourcePackageQualifiers>Scale|DXFeatureLevel</AppxBundleAutoResourcePackageQualifiers>
    

    在此範例中,所有語言資源都會包含在應用程式套件組合的應用程式套件內,因此無論裝置的使用者語言喜好設定為何,使用者都將下載這些資源。

  4. 如果您移除 Language 辨識符號,請在第一個 <PropertyGroup> 項目的開頭和結尾標記之間加入下列 XML 內容。

    <AppxDefaultResourceQualifiers>Language=Value</AppxDefaultResourceQualifiers>
    
    System_CAPS_note注意事項

    如果您移除 Scale 或 DXFeatureLevel 辨識符號,但移除 Language 辨識符號,則不需要加入此內容。

    請以您想要包含在應用程式套件中的每種語言資源的語言代碼,取代預留位置。下列範例是語言代碼清單取代語言辨識符號的預留位置後,所顯示的 XML 內容。

    <AppxDefaultResourceQualifiers>Language=en;ja;de</AppxDefaultResourceQualifiers>
    
  5. 儲存並關閉專案檔。然後,在 Visual Studio 中重新載入檔案。

  6. 建置方案,然後建立應用程式套件。

    在 [建立應用程式套件精靈] 的 [選取和設定套件] 頁面中,選擇為套件產生應用程式套件組合。請參閱建立 Windows 8.1 應用程式套件

  7. ProjectFolder[\obj\]ReleaseConfiguration 資料夾中,開啟 [記事本] 中的 split.priconfig.xml 檔案。

  8. 確定您移除的限定詞並未出現在資源限定詞清單中。

請參閱

應用程式套件組合部署
應用程式套件組合
決定是否產生應用程式套件組合
資源套件
資源管理系統
定義應用程式資源 (使用 C#/VB/C++ 和 XAML 的應用程式)
定義應用程式資源 (使用 JavaScript 和 HTML 的應用程式)