GenerateResource, tâche
Effectue la conversion entre des fichiers texte et .resx (format de ressources XML) et des fichiers .resources binaires du Common Language Runtime qui peuvent être incorporés dans un exécutable binaire runtime ou compilés en assemblys satellites. Cette tâche est généralement utilisée pour convertir des fichiers .txt ou .resx en fichiers .resource. La tâche GenerateResource est similaire, d'un point de vue fonctionnel, à resgen.exe.
Paramètres
Le tableau suivant décrit les paramètres de la tâche GenerateResource.
Paramètre |
Description |
---|---|
AdditionalInputs |
Paramètre ITaskItem[] facultatif. Contient des entrées supplémentaires pour la vérification des dépendances que la tâche exécute. Par exemple, les fichiers projet et cibles doivent généralement correspondre à des entrées pour garantir la régénération de toutes les ressources en cas de mise à jour de ces fichiers. |
EnvironmentVariables |
Paramètre String[] facultatif. Spécifie un tableau de paires nom-valeur de variables d'environnement qui doivent être passées au fichier resgen.exe généré, en plus du bloc environnement normal ou en remplacement de celui-ci. |
ExcludedInputPaths |
Paramètre ITaskItem[] facultatif. Spécifie un tableau des éléments qui spécifient les chemins d'accès pour lesquels les entrées suivies seront ignorées pendant la vérification de mise à jour. |
ExecuteAsTool |
Paramètre Boolean facultatif. Si la valeur est true, exécute tlbimp.exe et aximp.exe à partir de la version cible du .NET Framework appropriée hors processus pour générer les assemblys de wrappers nécessaires. Ce paramètre permet le multi-ciblage de ResolveComReferences. |
FilesWritten |
Paramètre de sortie ITaskItem[] facultatif. Contient les noms de tous les fichiers écrits sur le disque. Cela inclut le fichier cache, le cas échéant. Ce paramètre est utile pour les implémentations de Clean. |
MinimalRebuildFromTracking |
Paramètre Boolean facultatif. Obtient ou définit un commutateur qui spécifie si la build incrémentielle suivie sera utilisée. Si la valeur est true, la build incrémentielle est activée ; sinon, une régénération est exécutée. |
NeverLockTypeAssemblies |
Paramètre Boolean facultatif. Spécifie le nom des fichiers générés, par exemple des fichiers .resources. Si vous ne spécifiez pas de nom, le nom du fichier d'entrée correspondant est utilisé et le fichier .resources créé est placé dans le répertoire qui contient le fichier d'entrée. |
OutputResources |
Paramètre de sortie ITaskItem[] facultatif. Spécifie le nom des fichiers générés, par exemple des fichiers .resources. Si vous ne spécifiez pas de nom, le nom du fichier d'entrée correspondant est utilisé et le fichier .resources créé est placé dans le répertoire qui contient le fichier d'entrée. |
PublicClass |
Paramètre Boolean facultatif. Si la valeur est true, crée un type de ressources fortement typé comme classe public. |
References |
Paramètre String[] facultatif. Références à partir desquelles charger les types dans des fichiers .resx. Les éléments de donnée des fichiers .resx peuvent avoir un type .NET. Lors de la lecture du fichier .resx, il doit être résolu. En général, il est possible de le résoudre à l'aide de règles de chargement de type standard. Si vous fournissez des assemblys dans References, ils sont prioritaires. Ce paramètre n'est pas obligatoire pour les ressources fortement typées. |
SdkToolsPath |
Paramètre String facultatif. Spécifie le chemin d'accès des outils du Kit de développement logiciel, comme resgen.exe. |
Sources |
Paramètre ITaskItem[] obligatoire. Spécifie les éléments à convertir. Les éléments passés à ce paramètre doivent avoir l'une des extensions de fichier suivantes :
|
StateFile |
Paramètre ITaskItem facultatif. Spécifie le chemin d'accès à un fichier cache facultatif qui est utilisé pour accélérer le contrôle de dépendance des liens dans les fichiers d'entrée .resx. |
StronglyTypedClassName |
Paramètre String facultatif. Spécifie le nom de classe pour la classe de ressources fortement typées. Si ce paramètre n'est pas spécifié, le nom de base du fichier de ressources est utilisé. |
StronglyTypedFilename |
Paramètre ITaskItem facultatif. Spécifie le nom de fichier du fichier source. Si ce paramètre n'est pas spécifié, le nom de la classe est utilisé comme nom de fichier de base, avec une extension différente en fonction du langage. Par exemple : MyClass.cs. |
StronglyTypedLanguage |
Paramètre String facultatif. Spécifie le langage à utiliser lors de la génération de la source de classe pour la ressource fortement typée. Ce paramètre doit correspondre exactement à l'un des langages utilisé par CodeDomProvider. Par exemple : VB ou C#. En passant une valeur à ce paramètre, vous indiquez à la tâche de générer des ressources fortement typées. |
StronglyTypedManifestPrefix |
Paramètre String facultatif. Spécifie le préfixe de manifeste ou d'espace de noms de ressource à utiliser dans la source de classe générée pour la ressource fortement typée. |
StronglyTypedNamespace |
Paramètre String facultatif. Spécifie l'espace de noms à utiliser pour la source de classe générée pour la ressource fortement typée. Si ce paramètre n'est pas spécifié, toutes les ressources fortement typées sont dans l'espace de noms global. |
TLogReadFiles |
Paramètre en lecture seule ITaskItem[] facultatif. Obtient un tableau des éléments qui représentent les journaux de suivi de lecture. |
TLogWriteFiles |
Paramètre en lecture seule ITaskItem[] facultatif. Obtient un tableau des éléments qui représentent les journaux de suivi d'écriture. |
ToolArchitecture |
Paramètre [String] facultatif. Utilisé pour déterminer si Tracker.exe doit être utilisé pour générer ResGen.exe. Cet élément doit être analysable pour un membre de l'énumération ExecutableType. Si la valeur est String.Empty, une heuristique est utilisée pour déterminer une architecture par défaut. Cet élément doit être analysable pour un membre de l'énumération Microsoft.Build.Utilities.ExecutableType. |
TrackerFrameworkPath |
Paramètre [String] facultatif. Spécifie le chemin d'accès à l'emplacement .NET Framework approprié qui contient FileTracker.dll. En cas de définition, l'utilisateur assume la responsabilité de veiller à ce que le nombre de bits du fichier FileTracker.dll qu'il passe corresponde au nombre de bits de ResGen.exe qu'il prévoit d'utiliser. S'il n'est pas défini, la tâche choisit l'emplacement approprié en fonction de la version actuelle du .NET Framework. |
TrackerLogDirectory |
Paramètre [String] facultatif. Spécifie le répertoire intermédiaire dans lequel les journaux de suivi de l'exécution de cette tâche seront placés. |
TrackerSdkPath |
Paramètre [String] facultatif. Spécifie le chemin d'accès à l'emplacement approprié du Kit de développement logiciel Windows qui contient Tracker.exe. En cas de définition, l'utilisateur assume la responsabilité de veiller à ce que le nombre de bits de Tracker.exe qu'il passe corresponde au nombre de bits de ResGen.exe qu'il prévoit d'utiliser. S'il n'est pas défini, la tâche choisit l'emplacement approprié en fonction du Kit de développement logiciel Windows actuel. |
TrackFileAccess |
Paramètre [Boolean] facultatif. Si la valeur est true, le répertoire du fichier d'entrée est utilisé pour résoudre les chemins d'accès de fichier relatifs. |
UseSourcePath |
Paramètre Boolean facultatif. Si la valeur est true, indique que le répertoire du fichier d'entrée doit être utilisé pour résoudre des chemins d'accès de fichier relatifs. |
Notes
Dans la mesure où les fichiers .resx peuvent contenir des liens vers d'autres fichiers de ressources, il ne suffit pas de comparer simplement des horodatages de fichiers .resx et .resource pour voir si les sorties sont à jour. Au lieu de cela, la tâche GenerateResource suit les liens figurant dans les fichiers .resx et vérifie aussi les horodatages des fichiers liés. Cela signifie que vous ne devez généralement pas utiliser les attributs Inputs et Outputs sur la cible contenant la tâche GenerateResource. En effet, il est possible qu'elle soit ignorée alors qu'elle doit être en réalité exécutée.
En plus des paramètres énumérés ci-dessus, cette tâche hérite des paramètres de la classe TaskExtension, qui hérite elle-même de la classe Task. Pour obtenir la liste de ces paramètres supplémentaires et de leurs descriptions, consultez Classe TaskExtension Base.
Lorsque vous utilisez MSBuild 4.0 pour cibler les projets .NET 3.5, la build peut échouer sur les ressources x86. Pour contourner ce problème, vous pouvez créer la cible comme un assembly AnyCPU.
Exemple
L'exemple suivant utilise la tâche GenerateResource pour générer des fichiers .resources à partir des fichiers spécifiés par la collection d'éléments Resx.
<GenerateResource
Sources="@(Resx)"
OutputResources="@(Resx->'$(IntermediateOutputPath)%(Identity).resources')">
<Output
TaskParameter="OutputResources"
ItemName="Resources"/>
</GenerateResource>
La tâche GenerateResource utilise les métadonnées <LogicalName> d'un élément <EmbeddedResource> pour nommer la ressource incorporée dans un assembly.
Supposant que l'assembly est nommé myAssembly, le code suivant génère une ressource incorporée nommée someQualifier.someResource.resources :
<ItemGroup> <EmbeddedResource Include="myResource.resx"> <LogicalName>someQualifier.someResource.resources</LogicalName> </EmbeddedResource></ItemGroup>
Sans métadonnées <LogicalName>, la ressource serait nommée myAssembly.myResource.resources. Cet exemple s'applique uniquement au processus de génération Visual Basic et Visual C#.