Usted necesitará las siguientes herramientas para crear ensamblajes.
- Resgen.exe
- al.exe
- ildasm.exe
al.exe es el programa que incorpora recursos en un ensamblado satélite. Pero al.exe solo aceptará recursos en .resources formato binario. Pero nuestras entradas suelen ser archivos de recursos de texto sin formato o archivos de recursos basados en XML en formato .resx. resgen.exe se utiliza para convertir estas formas alternativas de recursos al formato binario .resources aceptable para al.exe.
ildasm.exe: Si recuerda lo que está haciendo Visual Studio IDE, verá que hay una traducción de nombre entre su estructura de directorio de archivos de recursos y cómo se conoce ese archivo de recursos dentro del ensamblado. Becaue estamos utilizando el IDE de Visual Studio para generar los recursos predeterminados y el proceso extenal para generar los ensamblados satélite, ambos mecanismos deben producir montajes con el mismo tipo de jerarquía de nombres de los archivos de recursos.
por lo que utilizar ildasm para examinar los archivos DLL que genera Visual Studio IDE para averiguar cuál es la estructura, y utilizar el mismo mecanismo para generar los ensamblados satélite. También puede examinar los ensamblajes de satélites utilizando ildasm para asegurarse de obtener los nombres correctos. Esto será útil para depurar errores del administrador de recursos indicándole que no puede encontrar un recurso.
Ahora que las herramientas se describen, ¿cómo convertir un archivo de recursos externo en un ensamblado satélite? Como se indica a continuación, este es un proceso de tres (en realidad, dos) pasos.
Paso 0: Establecer sus caminos para resgen y al.exe:
@set path=%path%;
"C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Bin";
c:\winnt\microsoft.NET\framework\v1.0.3705
Paso 1: Uso resgen para crear un archivo .resources de un archivo .resx.
Resgen MyText.resx
El comando anterior creará un archivo llamado:
MyText.resources
Paso 2: Utilice al.exe para crear el ensamblado satélite:
Al.exe
/t:lib
/embed:MyText.en-gb.Resources,MyApplication.MyText.en-gb.Resources
/culture:hi-gb
/out:MyApplication.resources.dll
Hay un par de cosas vale la pena observando aquí:
/t:lib: Says you are interested in a .dll.
/embed:MyText.en-gb.Resources,MyApplication.MyText.en-gb.Resources : Embeds and renames the resource to a target name to match the Visual Studio IDE naming structure.
/culture:hi-gb : Identifies the culture in which you are interested.
/out:MyApplication.resources.dll : Name of the DLL in which you are interested.
El archivo .dll generado debe tener esa convención de nomenclatura para .NET para encontrarlo. También tenga en cuenta que debe especificar la configuración cultural, aunque la cultura esté disponible en el nombre de los archivos de recursos. Por lo tanto, debe ser mencionado en ambos lugares.
colocar el conjunto de satélite en el directorio apropiado Una vez creado el ensamblado satélite, copiar físicamente el .dll en el directorio siguiente:
\MyApplication\bin\en-gb\MyApplication.Resources.DLL
En caso de múltiples archivos de recursos:
\MyApplication\resources\files\CommonResources.resx
\MyApplication\resources\files\Module1Resources.resx
\MyApplication\resources\files\Module2Resources.resx
Y puede definir claves para estos recursos en una jerarquía separada, de la siguiente manera:
\MyApplication\resources\keys\CommonKeys.cs
\MyApplication\resources\keysModule1Keys.cs
\MyApplication\resources\keys\Module2Keys.cs
Para un script programa por lotes, por favor refiérase a mi blog http://samithenerd.blogspot.com/2011/12/batch-program-for-creating-satellite.html
Lo comprobaré en el tiempo libre, votó a favor de sus esfuerzos para compartir;) –
También puede aceptar su respuesta si cree que esto es lo que realmente deseaba. –