C# 应用程序中的资源和嵌入式资源有啥区别?

Posted

技术标签:

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

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

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

感谢您的信息。

【问题讨论】:

【参考方案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】:

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

希望这对未来有所帮助。

【讨论】:

以上是关于C# 应用程序中的资源和嵌入式资源有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

C#应用程序中资源和嵌入式资源之间的区别是什么?

Visual Studio 中的头文件、源文件和资源文件都是啥?有啥区别??

在 C# 中将 Exe 文件作为嵌入式资源运行

ROSEHA和ROSEMIRRORHA有啥区别

New Router API 中的路由和资源有啥区别?

Java中的资源、URI、URL、路径和文件有啥区别?