我试图了解WinRT中的Resource Management

该文件说:


  MakePRI.exe是用于创建和转储PRI文件的命令行工具。它已集成为Microsoft Visual Studio中MSBuild的一部分,但对于开发人员手动或通过自定义构建系统创建软件包很有用。


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

最佳答案

您的csproj文件为C#XAML应用程序导入了此文件:

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


这反过来又导入了以任何语言编写的Windows XAML应用程序所共有的信息:

%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


其中有一个名为“ _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,它似乎列出了从引用的程序集和layout.resfiles导入的pri文件,后者是要打包在应用程序中的所有内容文件的列表。

因此,这大致是将makepri集成到msbuild中的方式。现在,Windows Dev Center在Resource Management System上具有整个主题,它描述了如果要手动运行它,将如何配置它。

您可能还想在naming resources using qualifiers上阅读另一个相关主题,该主题显示了如何提取使用各种限定符(比例,语言环境等)命名的资源或位于限定符文件夹中的资源。

08-26 15:48