构建操作页面或资源

Posted

技术标签:

【中文标题】构建操作页面或资源【英文标题】:Build action Page or Resource 【发布时间】:2015-07-05 10:42:43 【问题描述】:

我的应用程序中有几个ResourceDictionaries 以使其可本地化。这些文件被命名为 Language_en.xamlLanguage_nl.xaml 等。下面给出了此类文件的示例。

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:system="clr-namespace:System;assembly=mscorlib">

    <!-- DO NOT LOCALIZE -->
    <system:String x:Key="Language">English</system:String>
    <FlowDirection x:Key="FlowDirection">LeftToRight</FlowDirection>

    <!-- DO LOCALIZE -->
    <system:String x:Key="Title">English Title External</system:String>

</ResourceDictionary>

要在应用程序运行时加载这些文件,我会创建如下路径:

_appResDicSource = Path.Combine("\\" + _projectName + ";component", _languagesDirectoryName,
            _fileBaseName + "_" + language + ".xaml");
_clsLibResDicSource = "\\MyDLL;component\\Languages\\Language_" + language + ".xaml";

以上内容适用于构建操作ResourcePage,CtOD 设置为“不复制”,自定义工具设置为“MSBuild:Compile”。

从this link 我学到了下面的引述,但对我的项目最好的东西是什么?

资源(仅限 wpf):将文件嵌入到名为 AppName.g.resources 的共享(由具有类似设置的程序集中的所有文件)程序集清单资源中。

页面(仅限 wpf):用于将 xaml 文件编译为 baml。然后使用与 Resource 相同的技术嵌入 baml(即作为 `AppName.g.resources 提供)

【问题讨论】:

【参考方案1】:

当您在 Visual Studio (2017) 中添加 ResourceDictionary 时,默认情况下会设置生成操作:页面,因此这是有利于页面的提示。我在下面的链接中找到了更多相关信息:

https://docs.microsoft.com/en-us/dotnet/framework/wpf/app-development/wpf-application-resource-content-and-data-files

【讨论】:

以上是关于构建操作页面或资源的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2017 - 团队资源管理器构建“找不到页面”

为啥下一个 js 在我构建时会在第一次加载时加载所有页面

构建多页面应用——静态资源的处理

构建配置 ProGuard Shrink 混淆和压缩

ASP.NET 页面方法与 Web 服务

Web图片资源的加载与渲染时机