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

问题描述 投票:75回答:4

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

我想在我的应用程序中使用的所有文件(图像,声音,xml文件等)都在.exe文件中,所以我不会使用一堆文件夹和文件进行部署。

谢谢(你的)信息。

c# .net wpf resources embedded-resource
4个回答
70
投票

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

MSDN提供here的完整解释。


7
投票

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

WPF资源文件与可以使用核心.NET Framework对程序集资源的支持配置的嵌入或链接类型的资源不同。虽然WPF资源文件确实利用了核心.NET Framework嵌入式资源支持,但使用pack URI访问WPF资源文件的能力比使用命名空间更容易。


3
投票

据MSDN报道,

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

您无法直接编辑嵌入资源。如果您尝试编辑嵌入的资源,您将收到一条消息,提示您将项目转换为链接的资源以进行编辑。建议进行转换,但是可选。您必须导出它们,在外部程序中进行修改,然后将它们导回到项目中。


0
投票

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

希望这有助于未来。

© www.soinside.com 2019 - 2024. All rights reserved.