我想了解WinRT中的Resource Management。
文档说:
MakePRI.exe是一个用于创建和转储PRI文件的命令行工具。它作为MSBuild的一部分集成在Microsoft Visual Studio中,但对于开发人员可以手动或通过自定义构建系统创建包非常有用。
我想知道如何将makepri.exe集成到MSBuild中,我该如何配置它?
答案 0 :(得分:7)
您的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,它们似乎列出了从引用的程序集导入的pri文件和layout.resfiles,它是应用程序中打包的所有内容文件的列表。
所以这大致是如何将makepri集成到msbuild中的。现在,Windows开发人员中心在Resource Management System上有完整的主题,它描述了如果你想手动运行它,你将如何配置它。
您还可以在naming resources using qualifiers上阅读另一个相关主题,其中显示了如何获取以各种限定符(比例,区域设置等)命名的资源或位于限定符文件夹中的资源。