2013-01-09 46 views
3

我想了解WinRT中的Resource Managementmakepri.exe如何集成到MSBuild中?

文檔說:

MakePRI.exe是用於創建和傾倒PRI文件的命令行工具。它作爲MSBuild的一部分集成到Microsoft Visual Studio中,但對於開發人員可以通過手動或自定義構建系統創建包來說非常有用。

我想知道如何將makepri.exe集成到MSBuild中,我該如何配置它?

+4

打電話給我一個學生,但是當你甚至用一個正確的名字「makepri.exe」引用一個MSDN引用時,你爲什麼稱它爲「make_pri.exe」? –

回答

7

你的csproj文件導入此文件中的C#XAML應用程序:

這反過來進口這是常見到Windows XAML應用程序以任何語言編寫
%ProgramFiles(x86)%\MSBuild\Microsoft\WindowsXaml\v11.0\Microsoft.Windows.UI.Xaml.CSharp.Targets 

%ProgramFiles(x86)%\MSBuild\Microsoft\WindowsXaml\v11.0\Microsoft.Windows.UI.Xaml.Common.Targets 

終於它進口這個包含makepri配置命令的文件:

%ProgramFiles(x86)%\MSBuild\Microsoft\VisualStudio\v11.0\AppxPackage\Microsoft.AppxPackage.Targets 

在那裏th ERE是一種叫「_GenerateProjectPriFileDependsOn」,這是由這些任務:

 _GeneratePrisForPortableLibraries; 
     _GetPriFilesFromPayload; 
     _ComputeInputPriFiles; 
     _GenerateProjectPriConfigurationFiles; 
     _CalculateInputsForGenerateProjectPriFileCore; 
     _GenerateProjectPriFileCore; 
     _AddFileReadsAndFileWritesForProjectPri; 
     _CreateProjectPriFileItem; 
     _ExpandPriFiles; 

好像它運行的一些任務列出的資源,產生makepri一個配置文件,然後運行makepri。

目標文件有點神祕地分析,我會打破這裏尋找這些makepri配置文件。如果您在應用程序項目的obj文件夾下搜索,則可以找到名爲priconfig.xml的文件。事實上,如果您運行makepri.exe,您會發現有一個用於創建配置文件的makepri命令,如果嘗試(通過運行makepri.exe createconfig) - 您將瞭解到priconfig.xml是配置文件的通用名稱。如果您運行「makepri new」,您將看到用於生成pri文件和調用語法的選項(「MakePri.exe new/pr/cf [options]」)。現在,priconfig.xml文件列出了一些其他文件,如pri.resfiles,它們似乎列出了從引用程序集導入的pri文件和layout.resfiles,它們是應用程序中打包的所有內容文件的列表。

所以這大致是如何將makepri集成到msbuild中的。現在Windows開發人員中心的整個主題都是Resource Management System,它描述瞭如果要手動運行它,如何配置它。

還有另一個相關主題,您可能想要在naming resources using qualifiers上閱讀,其中顯示瞭如何獲取以各種限定符(比例尺,區域設置等)命名的資源或位於限定符文件夾中的資源。

+0

這是一個非常好的答案,謝謝! – thumbmunkeys