GenerateResource (Tarea)
Convierte entre archivos .txt y .resx (formato de recursos basado en XML) y archivos .resources binarios de Common Language Runtime, que se pueden incrustar en un archivo ejecutable binario en tiempo de ejecución o compilar en ensamblados satélite. Esta tarea normalmente se utiliza para convertir archivos .txt o .resx en archivos .resource. La tarea GenerateResource es funcionalmente similar a resgen.exe.
Parámetros
En la siguiente tabla se describen los parámetros de la tarea GenerateResource.
Parámetro |
Descripción |
---|---|
AdditionalInputs |
Parámetro ITaskItem[] opcional. Contiene entradas adicionales a la comprobación de dependencias realizada por esta tarea. Por ejemplo, los archivos de proyecto y de destino normalmente deben ser entradas de modo que, si se actualizan, se vuelven a generar todos los recursos. |
EnvironmentVariables |
Parámetro String[] opcional. Especifica una matriz de pares nombre-valor de variables de entorno que deben pasarse al ejecutable resgen.exe generado, además del bloque de entorno normal (o su invalidación selectiva). |
ExcludedInputPaths |
Parámetro ITaskItem[] opcional. Especifica una matriz de elementos que especifican rutas de acceso en las que las entradas de las que se lleva a cabo el seguimiento se van a omitir durante la comprobación de actualización. |
ExecuteAsTool |
Parámetro Boolean opcional. Si es true, se ejecutan tlbimp.exe y aximp.exe desde la versión de .NET Framework de destino adecuada fuera de proceso para generar los ensamblados de contenedor necesarios. Este parámetro permite compatibilidad con múltiples versiones de ResolveComReferences. |
FilesWritten |
Parámetro de salida ITaskItem[] opcional. Contiene los nombres de todos los archivos escritos en el disco. Esto incluye el archivo de la caché, si existe. Este parámetro es útil para las implementaciones de Clean. |
MinimalRebuildFromTracking |
Parámetro Boolean opcional. Obtiene o establece un modificador que especifica si se va a usar la compilación incremental de la que se realiza el seguimiento. Si es true, se activa la compilación incremental; de lo contrario, se forzará una recompilación. |
NeverLockTypeAssemblies |
Parámetro Boolean opcional. Especifica el nombre de los archivos generados, como los archivos .resources. Si no especifica un nombre, se utiliza el nombre del archivo de entrada coincidente, y el archivo .resources que se crea se coloca en el directorio que contiene el archivo de entrada. |
OutputResources |
Parámetro de salida ITaskItem[] opcional. Especifica el nombre de los archivos generados, como los archivos .resources. Si no especifica un nombre, se utiliza el nombre del archivo de entrada coincidente, y el archivo .resources que se crea se coloca en el directorio que contiene el archivo de entrada. |
PublicClass |
Parámetro Boolean opcional. Si true, crea una clase de recurso con nombre seguro como clase pública. |
References |
Parámetro String[] opcional. Hace referencia a tipos de carga en archivos .resx. Los elementos de datos del archivo resx pueden tener un tipo de .NET. Cuando se lee el archivo .resx, se debe resolver esta situación. Normalmente, se resuelve correctamente utilizando reglas de carga de tipo estándar. Si proporciona los ensamblados en References, serán prioritarios. Este parámetro no se requiere para los recursos con tipo seguro. |
SdkToolsPath |
Parámetro String opcional. Especifica la ruta de acceso a las herramientas del SDK, tales como resgen.exe. |
Sources |
Parámetro ITaskItem[] requerido. Especifica los elementos que se van a convertir. Los elementos pasados a este parámetro deben tener una de las extensiones de archivo siguientes:
|
StateFile |
Parámetro ITaskItem opcional. Especifica la ruta de acceso a un archivo de la caché opcional que se utiliza para acelerar la comprobación de dependencias de vínculos en archivos de entrada .resx. |
StronglyTypedClassName |
Parámetro String opcional. Especifica el nombre de clase para la clase de recurso con nombre seguro. Si no se especifica este parámetro, se utiliza el nombre base del archivo de recursos. |
StronglyTypedFilename |
Parámetro ITaskItem opcional. Especifica el nombre de archivo para el archivo de código fuente. Si no se especifica este parámetro, el nombre de la clase se utiliza como nombre de archivo base, y la extensión depende del lenguaje. Por ejemplo: MyClass.cs. |
StronglyTypedLanguage |
Parámetro String opcional. Especifica el lenguaje que se utilizará para generar el origen de clase del recurso con nombre seguro. Este parámetro debe coincidir exactamente con uno de los lenguajes utilizado por CodeDomProvider. Por ejemplo: VB o C#. Cuando se pasa un valor a este parámetro, se indica a la tarea que genere recursos con nombre seguro. |
StronglyTypedManifestPrefix |
Parámetro String opcional. Especifica el espacio de nombres del recurso o prefijo del manifiesto que se va a utilizar en el origen de clase generado para el recurso fuertemente tipado. |
StronglyTypedNamespace |
Parámetro String opcional. Especifica el espacio de nombres que se utilizará para el origen de clase generado para el recurso con nombre seguro. Si no se especifica este parámetro, cualquier recurso con nombre seguro se encontrará en el espacio de nombres global. |
TLogReadFiles |
Parámetro de solo lectura ITaskItem[] opcional. Obtiene una matriz de elementos que representan los registros de seguimiento de lectura. |
TLogWriteFiles |
Parámetro de solo lectura ITaskItem[] opcional. Obtiene una matriz de elementos que representan los registros de seguimiento de escritura. |
ToolArchitecture |
Parámetro [String] opcional. Se utiliza para determinar si debe utilizarse o no Tracker.exe para generar ResGen.exe. Debe ser analizable para un miembro de la enumeración ExecutableType. Si String.Empty, utiliza una heurística para determinar una arquitectura predeterminada. Debe ser analizable para un miembro de la enumeración Microsoft.Build.Utilities.ExecutableType. |
TrackerFrameworkPath |
Parámetro [String] opcional. Especifica la ruta de acceso a la ubicación de .NET Framework adecuada que contiene FileTracker.dll. Si está establecido, el usuario asume la responsabilidad de comprobar que el valor de bits de FileTracker.dll que pasan coincide con el valor de bits del archivo ResGen.exe que van a utilizar. Si no está establecida, la tarea decide la ubicación adecuada basándose en la versión actual de .NET Framework. |
TrackerLogDirectory |
Parámetro [String] opcional. Especifica el directorio intermedio en el que se van a situar los registros de seguimiento de la ejecución de esta tarea. |
TrackerSdkPath |
Parámetro [String] opcional. Especifica la ruta a la ubicación del SDK de Windows adecuada que contiene Tracker.exe. Si está establecido, el usuario asume la responsabilidad de comprobar que el valor de bits de Tracker.dll que pasan coincide con el valor de bits del archivo ResGen.exe que van a utilizar. Si no está establecida, la tarea decide la ubicación adecuada basándose en la versión actual del SDK de Windows. |
TrackFileAccess |
Parámetro [Boolean] opcional. Si es true, el directorio del archivo de entrada se utiliza para resolver rutas de acceso relativas. |
UseSourcePath |
Parámetro Boolean opcional. Si es true, especifica que el directorio del archivo de entrada se utilizará para resolver las rutas de acceso relativas. |
Comentarios
Debido a que los archivos .resx pueden contener vínculos a otros archivos de recurso, no basta con simplemente comparar las marcas de tiempo de los archivos .resx y .resource para ver si los destinos están actualizados. En su lugar, la tarea GenerateResource sigue los vínculos en los archivos .resx y comprueba también las marcas de tiempo de los archivos vinculados. Esto significa que, por lo general, no debe utilizar los atributos Inputs y Outputs en el destino que contiene la tarea GenerateResource, puesto que podría causar que se omitiera cuando tendría que ejecutarse.
Además de los parámetros mencionados anteriormente, esta tarea hereda los parámetros de la clase TaskExtension, que hereda de la clase Task. Para obtener una lista de estos parámetros adicionales y sus descripciones, vea TaskExtension (Clase base).
Cuando se utiliza MSBuild 4.0 para proyectos de .NET 3.5, la compilación puede fallar en los recursos x86. Para evitar este problema, puede compilar el destino como un ensamblado AnyCPU.
Ejemplo
El ejemplo siguiente utiliza la tarea GenerateResource para generar archivos .resources de los archivos especificados por la colección de elementos Resx.
<GenerateResource
Sources="@(Resx)"
OutputResources="@(Resx->'$(IntermediateOutputPath)%(Identity).resources')">
<Output
TaskParameter="OutputResources"
ItemName="Resources"/>
</GenerateResource>
La tarea GenerateResource utiliza los metadatos <LogicalName> de un elemento <EmbeddedResource> para denominar el recurso incrustado en un ensamblado.
Suponiendo que el ensamblado se denomine myAssembly, el siguiente código genera un recurso incrustado denominado someQualifier.someResource.resources:
<ItemGroup> <EmbeddedResource Include="myResource.resx"> <LogicalName>someQualifier.someResource.resources</LogicalName> </EmbeddedResource></ItemGroup>
Sin los metadatos <LogicalName>, el recurso se denominaría myAssembly.myResource.resources. Este ejemplo sólo se aplica al proceso de compilación de Visual Basic y Visual C#.