Visual Studio 2010中的两个构建操作“资源”和“嵌入式资源”之间有什么区别?

时间:2011-11-07 11:35:19

标签: visual-studio-2010 windows-phone-7 silverlight-4.0

我已经阅读了以下可以解释它的文章,但它对我没有帮助:

http://msdn.microsoft.com/en-us/library/ht9h2dk8(VS.80).aspx

我的情况是我希望有一个包含数百个图标的dll。图标dll将在各种应用程序中共享和使用。显然,如果一个应用程序只使用数十个,我不希望所有这些图标都加载到内存中。所以我很想知道“资源”(构建操作)是否允许我按需加载图标而不是一次加载所有图标。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

构建行动"内容"可能是你真正想要的。在这种模式下,图标不会成为可执行文件的一部分,从而加载速度更快。

"资源"的文档和"嵌入式资源"表示:

  

在任何一种情况下,资源数据都会编译成可执行文件   文件。

所以"资源"构建动作,它们将被加载到内存中,而不是你想要的东西。

Click here用于比较"内容"和"资源"动作。

答案 1 :(得分:2)

我现在不在Visual Studio的附近,所以我无法直接测试,但我会尝试帮助盲人。

对于初学者来说,如果将所有资源放在已加载的Zip文件中作为内容添加到项目中,则在调用它们之前,应用程序不会加载它们。如上所述,如果要推送大量文件,这是管理资源的好方法。

请查看Jeff Wilcox关于using a dynamically loaded about page的博客,了解更多信息。

您还可以查看MSDN详细信息,使用GetResourceStream动态加载Zip文件中的文件。

当然,根据您计划使用的文件数量,在编译时找到分割应用程序所需文件的方法可能是一个更好的选择。由于将文件作为资源提取而存在开销成本,无论使用何种方法。