makepri.exe如何集成到MSBuild中?

thu*_*eys 3 .net c# windows-8 windows-runtime visual-studio-2012

我试图了解WinRT中的资源管理.

文件说:

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

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

Fil*_*kun 7

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

%ProgramFiles(x86)%\MSBuild\Microsoft\WindowsXaml\v11.0\Microsoft.Windows.UI.Xaml.CSharp.Targets
Run Code Online (Sandbox Code Playgroud)

这反过来导入了以任何语言编写的Windows XAML应用程序常见的内容:

%ProgramFiles(x86)%\MSBuild\Microsoft\WindowsXaml\v11.0\Microsoft.Windows.UI.Xaml.Common.Targets
Run Code Online (Sandbox Code Playgroud)

最后它导入包含makepri配置命令的文件:

%ProgramFiles(x86)%\MSBuild\Microsoft\VisualStudio\v11.0\AppxPackage\Microsoft.AppxPackage.Targets
Run Code Online (Sandbox Code Playgroud)

在那里有一些叫做"_GenerateProjectPriFileDependsOn"的东西,它由以下任务组成:

        _GeneratePrisForPortableLibraries;
        _GetPriFilesFromPayload;
        _ComputeInputPriFiles;
        _GenerateProjectPriConfigurationFiles;
        _CalculateInputsForGenerateProjectPriFileCore;
        _GenerateProjectPriFileCore;
        _AddFileReadsAndFileWritesForProjectPri;
        _CreateProjectPriFileItem;
        _ExpandPriFiles;
Run Code Online (Sandbox Code Playgroud)

似乎它运行一些任务来列出资源,为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开发人员中心拥有资源管理系统的全部主题,该主题描述了如果要手动运行它,如何配置它.

您还可以使用限定符来阅读有关命名资源的另一个相关主题,该限定符显示如何获取使用各种限定符(比例,区域设置等)或位于限定符文件夹中的资源.