Compartir a través de


Agregar y editar recursos (Visual C#)

Actualización: noviembre 2007

Generalmente, las aplicaciones de Visual C# incluyen datos que no son código fuente. Tales datos se denominan recursos de proyectos y pueden ser datos binarios, archivos de texto, archivos de audio o vídeo, tablas de cadenas, iconos, imágenes, archivos XML u otro tipo de datos necesarios para la aplicación. Los datos de recursos del proyecto se almacenan en formato XML en el archivo .resx (denominado Resources.resx de forma predeterminada), que se puede abrir en el Explorador de soluciones. Para obtener más información sobre los recursos de proyectos, vea Trabajar con archivos de recursos.

Agregar recursos a proyectos

Puede agregar recursos a un proyecto haciendo clic con el botón secundario del mouse en el nodo Propiedades de su proyecto en Explorador de soluciones, haciendo clic en Abrir y luego en el botón Agregar recurso en la página Recursos de Diseñador de proyectos.

Puede agregar recursos a su proyecto en forma de recursos vinculados, que son archivos externos, o de recursos incrustados, que se incrustan directamente en el archivo .resx.

  • Cuando se agrega un recurso vinculado, el archivo .resx que almacena la información de recursos del proyecto sólo incluye una ruta de acceso relativa al archivo de recursos en el disco. Si agrega imágenes, vídeos u otros archivos complejos como recursos vinculados, puede modificarlos mediante un editor predeterminado que asocie a ese tipo de archivo en el Diseñador de recursos.

  • Cuando agrega un recurso incrustado, los datos se almacenan directamente en el archivo de recursos del proyecto (.resx). Las cadenas sólo se pueden almacenar como recursos incrustados.

Para obtener más información, vea Recursos vinculados e incrustados y Recursos en formato de archivo .Resx.

Editar recursos

El Diseñador de recursos permite a agregar y modificar recursos de proyectos durante el desarrollo mediante la asociación de una aplicación predeterminada para modificar cada recurso. Para obtener acceso al Diseñador de recursos, haga clic con el botón secundario del mouse en Propiedades en el Explorador de soluciones, haga clic en Abrir y, después, en la ficha Recursos del Diseñador de proyectos. Para obtener más información, vea Página Recursos, Diseñador de proyectos. La ilustración siguiente muestra las opciones del menú Diseñador de recursos:

Para editar los recursos incrustados, debe trabajar directamente en el archivo .resx para manipular los caracteres o bytes individuales. Por eso es más conveniente almacenar los tipos de archivo complejos como recursos vinculados durante el desarrollo. Puede utilizar el Editor binario para modificar archivos de recursos, incluido el archivo .resx, en el nivel binario en formato ASCII o hexadecimal. Puede utilizar el Editor de imágenes para modificar iconos y cursores así como archivos .jpeg y GIF almacenados como recursos vinculados. También puede elegir otras aplicaciones como editores para estos tipos de archivo. Para obtener más información, vea Ver y editar recursos en un editor de recursos.

Compilar recursos en ensamblados

Cuando genera su aplicación, Visual Studio invoca la herramienta resgen.exe para convertir los recursos de la aplicación en una clase interna llamada Resources. Esta clase está contenida en el archivo Resources.Designer.cs, que se anida en el archivo Resources.resx en el Explorador de soluciones. La clase Resources encapsula todos los recursos del proyecto en propiedades get estáticas de sólo lectura para proporcionar recursos con establecimiento inflexible de tipos en tiempo de ejecución. Cuando genera la aplicación a través del IDE de Visual C#, todos los datos de recursos encapsulados, incluidos los archivos vinculados y los recursos que se incrustaron en el archivo .resx, se compilan directamente en el ensamblado de la aplicación (el archivo .exe o .dll). Es decir, el IDE de Visual C# siempre utiliza la opción del compilador /resource. Si genera la aplicación desde la línea de comandos, puede especificar la opción del compilador /linkresource, que le permitirá implementar recursos en un archivo independiente del ensamblado principal de la aplicación. Éste es un escenario avanzado y sólo es necesario en ciertas situaciones raras. Un escenario más común para implementar los recursos independientemente del ensamblado principal de la aplicación es utilizar ensamblados satélite como se describe a continuación.

Obtener acceso a los recursos en tiempo de ejecución

Para obtener acceso a un recurso en tiempo de ejecución, haga referencia a él como lo haría con cualquier otro miembro de una clase. El ejemplo siguiente muestra cómo recuperar un recurso de mapa de bits denominado Image01. Tenga en cuenta que la clase Resources está en un espacio de nombres denominado <projectName>.Properties, por lo que debe usar el nombre completo de cada recurso o agregar la directiva using correspondiente en el archivo de código fuente desde el que obtiene acceso a la clase Resources.

System.Drawing.Bitmap bitmap1 = myProject.Properties.Resources.Image01;

Internamente, la propiedad get utiliza la clase ResourceManager para crear una nueva instancia del objeto.

Para obtener más información, vea Recursos en aplicaciones y Generador de archivos de recursos (Resgen.exe).

Recursos en ensamblados satélite

Si crea aplicaciones que se localizarán (traducirán) en varios idiomas, puede almacenar cada conjunto de cadenas de referencia cultural como un recurso en su propio ensamblado satélite. Cuando distribuya la aplicación, incluya el ensamblado de la aplicación principal junto con los ensamblados satélite necesarios. A continuación, puede agregar ensamblados satélite adicionales o modificar los existentes sin volver a compilar el ensamblado de la aplicación principal. Para obtener más información, vea Crear ensamblados satélite y Buscar y utilizar recursos para una referencia cultural específica.

Vea también

Conceptos

Introducción al Diseñador de proyectos

Otros recursos

Visual C#

Introducción a Visual C#

Ensamblados en Common Language Runtime

Globalizar y localizar aplicaciones