我已经阅读了以下可以解释它的文章,但它对我没有帮助:
http://msdn.microsoft.com/en-us/library/ht9h2dk8(VS.80).aspx
我的情况是我希望有一个包含数百个图标的dll。图标dll将在各种应用程序中共享和使用。显然,如果一个应用程序只使用数十个,我不希望所有这些图标都加载到内存中。所以我很想知道“资源”(构建操作)是否允许我按需加载图标而不是一次加载所有图标。
有人可以帮忙吗?
答案 0 :(得分:2)
构建行动"内容"可能是你真正想要的。在这种模式下,图标不会成为可执行文件的一部分,从而加载速度更快。
"资源"的文档和"嵌入式资源"表示:
在任何一种情况下,资源数据都会编译成可执行文件 文件。
所以"资源"构建动作,它们将被加载到内存中,而不是你想要的东西。
Click here用于比较"内容"和"资源"动作。
答案 1 :(得分:2)
我现在不在Visual Studio的附近,所以我无法直接测试,但我会尝试帮助盲人。
对于初学者来说,如果将所有资源放在已加载的Zip文件中作为内容添加到项目中,则在调用它们之前,应用程序不会加载它们。如上所述,如果要推送大量文件,这是管理资源的好方法。
请查看Jeff Wilcox关于using a dynamically loaded about page的博客,了解更多信息。
您还可以查看MSDN详细信息,使用GetResourceStream动态加载Zip文件中的文件。
当然,根据您计划使用的文件数量,在编译时找到分割应用程序所需文件的方法可能是一个更好的选择。由于将文件作为资源提取而存在开销成本,无论使用何种方法。