使用 MakePri.exe 來手動編譯資源

MakePri.exe 是一個命令列工具,您可以用來建立和傾印 PRI 檔案。 其做為 MSBuild 的一部分整合到 Microsoft Visual Studio 中,但用於手動建立套件或自訂組建系統也很有用。

注意

當您在檢查 Windows SDK for UWP Managed Apps 選項同時安裝 Windows 軟體發展工具組時,就會安裝 MakePri.exe。 其會安裝到 %WindowsSdkDir%bin\<WindowsTargetPlatformVersion>\x64\makepri.exe 路徑 (以及針對其他架構命名的資料夾中)。 例如: C:\Program Files (x86)\Windows Kits\10\bin\10.0.17713.0\x64\makepri.exe

本節內容

主題 說明
MakePri.exe 命令列選項 MakePri.exe 具有一組命令createconfigdumpnewresourcepackversioned。 本主題詳述其使用的命令列選項。
MakePri.exe 設定檔 本主題描述 MAKEPRI.EXE XML 設定檔的結構描述。
MakePri.exe 格式特定的索引子 本主題描述 MakePri.exe 工具用來產生其資源索引的格式特定索引子。

MakePri.exe 命令列選項

MakePri.exe 具有一組命令createconfigdumpnewresourcepackversioned。 如需其使用方式的詳細資訊,請參閱 MakePri.exe 命令列選項

MakePri.exe 設定

PRI XML 設定檔會指示如何以及對哪些資源編制索引。 設定 XML 的結構描述說明於 MakePri.exe 設定中。

格式特定的索引子

MakePri.exe 通常與newversionedresourcepack選項一起使用。 在這些情況下,其會編制來源檔案的索引,以產生資源的索引。 MakePri.exe 會使用各種個別索引子來讀取資源的不同來源資源檔案或容器。 最簡單的索引器是資料夾索引子,它為資源 (如 .jpg.png 影像) 的資料夾內容編制索引。 有關詳細資訊,請參閱 MakePri.exe 特定於格式的索引子

MakePri.exe 警告和錯誤訊息

找到了語言「<語言>」的資源,但沒有找到預設語言的資源:「<語言>」。 使用預設語言變更預設語言或限定資源。

當 MakePri.exe 或 MSBuild 發現特定命名資源的檔案或字串資源似乎用語言限定詞標記,但未找到預設語言的候選項目時,將顯示此警告。 針對語言、縮放比例和其他限定詞量身打造資源中,描述了在檔案和資料夾名稱中使用限定詞的程序。 檔案或資料夾可能有語言名稱,但不會發現符合確切預設語言的資源。 例如,如果專案使用「en-US」做為預設語言,並且有一個名為「de/logo.png」的檔案,但沒有任何標有預設語言「en-US」的檔案,則會出現此警告。 為了移除此警告,檔案或字串資源應使用預設語言進行限定,或應變更預設語言。 若要變更預設語言,請在 Visual Studio 中開啟解決方案方案,開啟 Package.appxmanifest。 確認 [應用程式] 索引標籤的預設語言已設定妥當 (例如「en」或「en-US」)。

沒有為「<資源識別碼>」提供預設或中性資源。 擷取資源時,應用程式可能會針對特定使用者設定擲回例外狀況。

當 MakePri.exe 或 MSBuild 發現似乎標有語言限定詞但資源不清楚的檔案或資源時,將顯示此警告。 有限定詞,但不能保證在執行時可以為該資源識別碼傳回特定的資源候選項目。 如果找不到特定語言、主區域或其他限定詞的資源候選項目 (預設或始終與使用者的內容相符),則會顯示此警告。 在執行階段時,對於特定的使用者設定 (例如使用者的語言喜好設定或主位置 (設定>時間& 語言>區域 & 語言),用於擷取資源的 API 可能會擲回未預期的例外狀況。 為了移除此警告,應該提供預設資源,例如專案的預設語言或全域主區域的資源 (homeregion-001)。

在建置系統中使用 MakePri.exe

建置系統應使用 MakePri.exe newversionedresourcepack 指令,具體取決於正在建置的專案類型。 建立新 PRI 檔案的建置系統應使用 new 命令。 建置必須透過反覆項目確保內部位移相容性的系統可以使用 versioned 命令。 建置必須建立包含其他資源變體的 PRI 檔案並進行驗證,以確保不會為該變體新增新資源的系統,應使用 resourcepack 命令。

建置需要對已索引的來源檔案進行明確控制的系統,可以使用 ResFiles 索引子,而不是對資料夾編制索引。 建置系統也可以使用具有不同格式特定索引子的多個索引通道來產生單一 PRI 檔案。

建置系統也可以使用 PRI 格式特定的索引子,將預先建置的 PRI 檔案新增至來自其他元件 (例如類別庫、組件、SDK 和 DLL) 的套件的 PRI 中。

當為其他元件、類別庫、組件、DLL 和 SDK 建置 PRI 檔案時,應使用initialPath設定來確保元件資源擁有自己的子資源地圖,這些地圖不會與它們所包含的應用程式衝突。