3

我正在尝试了解 WinRT 中的资源管理

文档说:

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

我想知道makepri.exe是如何集成到MSBuild中的,我该如何配置呢?

4

1 回答 1

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 开发中心有关于资源管理系统的整个主题,它描述了如果你想手动运行它,你将如何配置它。

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

于 2013-01-09T23:18:05.803 回答