2011-11-07 20 views
7

He leído el siguiente artículo en el que se supone que explicarlo, pero no me ayuda:¿Cuál es la diferencia entre las dos acciones de compilación "Recurso" y "Recurso incrustado" en Visual Studio 2010?

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

Mi caso es que me gustaría tener un archivo DLL que contiene cientos de iconos. Y los íconos dll serán compartidos y usados ​​en varias aplicaciones. Obviamente, no me gustaría que todos esos iconos se carguen en la memoria si una aplicación solo usa decenas de ellos. Así que estoy interesado en saber si "Recurso" (la acción de compilación) me permite cargar iconos a pedido en lugar de cargarlos todos a la vez.

¿Alguien podría ayudar?

Respuesta

2

Acción de compilación "Contenido" podría ser lo que realmente está buscando. En este modo, los íconos no serán parte de tu ejecutable, por lo que se cargarán más rápido.

La documentación de "Recursos" y "Recurso incrustado" dice:

En cualquier caso, los datos de recursos se compila en el archivo ejecutable .

De modo que con cualquiera de las acciones de compilación "Recurso" se cargarán en la memoria lo que no es lo que desea.

Click here para una comparación de la acción "Contenido" y "Recurso".

2

No estoy cerca de Visual Studio en este momento, así que no puedo probar esto directamente, pero intentaré ayudar a cegar.

Para empezar, si coloca todos sus recursos en un archivo Zip cargado y agregado a su proyecto como Contenido, la aplicación no los cargará hasta que los llame. Esta es una gran manera de administrar recursos si va a meter una gran cantidad de archivos, como mencionó.

Eche un vistazo al blog de Jeff Wilcox con respecto al using a dynamically loaded about page para obtener más información.

También puede echar un vistazo a MSDN que detalla usando GetResourceStream para cargar archivos de archivos Zip de forma dinámica.

Por supuesto, dependiendo de la cantidad de archivos que planea usar, puede ser una opción mucho mejor para encontrar una manera de segmentar los archivos necesarios para la aplicación en tiempo de compilación. Como hay un costo adicional para tirar de un archivo como un recurso, independientemente del método utilizado.

Cuestiones relacionadas