【问题标题】:What's the difference between a Resource and an Embedded Resource in a C# application?C# 应用程序中的资源和嵌入式资源有什么区别?
【发布时间】:2010-12-28 10:27:00
【问题描述】:

我应该什么时候使用其中一种?

我希望我在应用程序中使用的所有文件(图像、声音、xml 文件等)都位于 .exe 文件中,这样我就不会使用一堆文件夹和文件进行部署。

感谢您的信息。

【问题讨论】:

    标签: c# .net wpf resources embedded-resource


    【解决方案1】:

    “资源”和“内容”构建操作是使用 Uris 访问 WPF 资源。然而,“嵌入式资源”是针对现有技术的。但是,这两个选项都将资源嵌入程序集中,但“资源”选项将用于 WPF。

    MSDN 提供完整解释here

    【讨论】:

    • 你是对的!我将 WPF 项目中的所有图像设置为 Resource 并重新构建了源。现在,当我导航到 Debug 文件夹时,我在任何地方都找不到文件,它们必须是 .exe 的一部分,这正是我想要的。不能感谢你! :)
    • MSDN 链接已损坏。这里的补充说明会很好。
    【解决方案2】:

    WPF 资源(构建操作 = Resource)利用核心 .NET 框架支持的嵌入式资源,但增加了对通过 pack URI 访问嵌入式资源的支持。来自MSDN

    WPF 资源文件与 嵌入或链接的类型 可以使用配置的资源 核心 .NET Framework 支持 装配资源。而 WPF 资源 文件确实利用了核心 .NET 框架嵌入式资源支持, 访问 WPF 资源的能力 使用包 URI 的文件比 使用命名空间。

    【讨论】:

      【解决方案3】:

      据 MSDN 报道,

      嵌入式资源是最佳选择 如果您必须共享应用程序 资源 (.resx) 文件之间 多个项目。例如,如果您 有一个公共资源文件 包含贵公司的徽标, 商标信息等,使用 嵌入式资源意味着您必须 只复制 .resx 文件而不是 相关的资源数据文件。

      您不能编辑嵌入的资源 直接地。如果您尝试编辑 嵌入式资源,您将收到一个 提示您转换的消息 项目到链接的资源,以便 编辑它。建议转换,但 可选的。你必须导出它们,制作 您在外部的修改 程序,然后将它们导入回来 进入你的项目。

      【讨论】:

      • 这并没有回答这个问题:嵌入式资源和资源之间有什么区别?你只回答地址嵌入式资源。
      • 问题的文字是“我什么时候应该使用其中一个?”;我想我已经回答了。问题实际上是两个。
      【解决方案4】:

      感谢所有报告,这些报告帮助我更准确地找到了问题所在: 对我来说,任务栏中用作项目图标的图像是作为资源构建的,并且必须作为内容构建。所有其他图像都可以作为资源构建,没问题。

      希望这对未来有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-15
        • 2011-10-30
        • 1970-01-01
        • 2014-07-29
        • 2012-07-08
        相关资源
        最近更新 更多