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# 应用程序中的资源和嵌入式资源有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章