В чем разница между двумя действиями по сборке «Ресурс» и «Встроенный ресурс» в Visual Studio 2010? - PullRequest
7 голосов
/ 07 ноября 2011

Я прочитал следующую статью, которая должна объяснить это, но это не помогает мне:

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

В моем случае я хотел бы иметь DLL, которая содержитсотни икон.А значки dll будут совместно использоваться и использоваться в различных приложениях.Очевидно, я не хотел бы, чтобы все эти значки загружались в память, если одно приложение просто использует десятки из них.Поэтому мне интересно узнать, позволит ли «Resource» (действие по сборке) загружать значки по требованию, а не загружать все сразу.

Может ли кто-нибудь помочь?

Ответы [ 2 ]

2 голосов
/ 08 ноября 2011

В данный момент я не нахожусь рядом с Visual Studio, поэтому не могу проверить это напрямую, но попытаюсь помочь слепым.

Для начала, если вы поместите все свои ресурсы в загруженный Zip-файл, добавленный в ваш проект как Контент, они не будут загружены приложением, пока вы не вызовете их. Это отличный способ управления ресурсами, если вы собираетесь загружать большое количество файлов, как вы упоминали.

Взгляните на блог Джеффа Уилкокса о , используя динамически загружаемую страницу о для получения дополнительной информации.

Вы также можете взглянуть на MSDN, который использует GetResourceStream для динамической загрузки файлов из Zip-файлов.

Конечно, в зависимости от того, сколько файлов вы планируете использовать, это может быть гораздо лучшим вариантом, чтобы найти способ сегментировать файлы, необходимые приложению во время компиляции. Поскольку извлечение файла в качестве ресурса связано с накладными расходами, независимо от используемого метода.

2 голосов
/ 08 ноября 2011

Действие "Контент" может быть тем, что вы действительно ищете. В этом режиме значки не будут частью вашего исполняемого файла, поэтому будут загружаться быстрее.

Документация для "Ресурса" и "Встроенного ресурса" гласит:

В любом случае данные ресурса компилируются в исполняемый файл файл.

Таким образом, при любом из действий по сборке «Ресурса» они будут загружены в память, а это не то, что вам нужно.

Нажмите здесь для сравнения действия «Содержимое» и «Ресурс».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...