2013-01-09 23 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