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


Answers:


82

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

MSDN在这里提供完整的解释。


你是对的!我将WPF项目中的所有图像都设置为Resource并重新构建了源。现在,当我导航到Debug文件夹时,在任何地方都找不到文件,它们必须是.exe的一部分,正是我想要的。感激不尽!:)
塞尔吉奥·塔皮亚

1
MSDN链接已断开。这里的附加说明将非常好。
迈克尔·哈里斯

7

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

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


2

据MSDN报告,

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

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


4
这并没有回答问题:嵌入式资源和资源之间有什么区别?您只回答嵌入式资源。
Grokys

3
问题文本为“何时应使用一种或另一种?”;我想我回答了。问题确实是两个。
kiamlaluno

1

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

希望这对未来有所帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.