Guide pratique pour générer un projet qui a des ressourcesHow to: Build a project that has resources

Si vous générez les versions localisées d’un projet, tous les éléments de l’interface utilisateur doivent être séparés dans des fichiers de ressources correspondant aux différentes langues.If you are building localized versions of a project, all user interface elements must be separated into resource files for the different languages. Si le projet utilise uniquement des chaînes, les fichiers de ressources peuvent utiliser des fichiers texte.If the project uses only strings, the resource files can use text files. Vous pouvez également utiliser des fichiers .resx comme fichiers de ressources.Alternatively, you can use .resx files as the resource files.

Compiler des ressources avec MSBuildCompile resources with MSBuild

La bibliothèque de tâches courantes qui est fournie avec MSBuildMSBuild inclut une tâche GenerateResource que vous pouvez utiliser pour compiler les ressources dans des fichiers .resx ou texte.The library of common tasks that is provided with MSBuildMSBuild includes a GenerateResource task that you can use to compile resources in either .resx or text files. Cette tâche inclut le paramètre Sources pour spécifier les fichiers de ressources à compiler et le paramètre OutputResources pour spécifier les noms des fichiers de ressources de sortie.This task includes the Sources parameter to specify which resource files to compile and the OutputResources parameter to specify names for the output resource files. Pour plus d’informations sur la tâche GenerateResource, consultez GenerateResource, tâche.For more information on the GenerateResource task, see GenerateResource task.

Pour compiler des ressources avec MSBuildTo compile resources with MSBuild

  1. Identifiez les fichiers de ressources du projet et transmettez-les à la tâche GenerateResource, en tant que listes d’éléments ou noms de fichiers.Identify the project's resource files and pass them to the GenerateResource task, either as item lists, or as file names.

  2. Spécifiez le paramètre OutputResources de la tâche GenerateResource, qui vous permet de définir les noms des fichiers de ressources de sortie.Specify the OutputResources parameter of the GenerateResource task, which allows you to set the names for the output resource files.

  3. Utilisez l’élément Output de la tâche pour stocker la valeur du paramètre OutputResources dans un élément.Use the Output element of the task to store the value of the OutputResources parameter in an item.

  4. Utilisez l’élément créé à partir de l’élément Output en tant qu’entrée d’une autre tâche.Use the item created from the Output element as an input into another task.

ExempleExample

L’exemple de code suivant montre comment l’élément Output spécifie que l’attribut OutputResources de la tâche GenerateResource contient les fichiers de ressources compilés alpha.resources et beta.resources et que ces deux fichiers sont placés dans la liste d’éléments Resources.The following code example shows how the Output element specifies that the OutputResources attribute of the GenerateResource task will contain the compiled resource files alpha.resources and beta.resources and that those two files will be placed inside the Resources item list. En identifiant ces fichiers .resources comme collection d’éléments du même nom, vous pouvez les utiliser facilement comme entrées d’une autre tâche, par exemple la tâche Csc.By identifying those .resources files as a collection of items of the same name, you can easily use them as inputs for another task, such as the Csc task.

Cette tâche revient à utiliser le commutateur /compiler pour Resgen.exe :This task is equivalent to using the /compile switch for Resgen.exe:

Resgen.exe /compile alpha.resx,alpha.resources /compile beta.txt,beta.resources

<GenerateResource  
    Sources="alpha.resx; beta.txt"  
    OutputResources="alpha.resources; beta.resources">  
    <Output TaskParameter="OutputResources"  
        ItemName="Resources"/>  
</GenerateResource>  

ExempleExample

L’exemple de projet suivant contient deux tâches : la tâche GenerateResource permet de compiler les ressources, et la tâche Csc permet de compiler les fichiers de code source et les fichiers de ressources compilés.The following example project contains two tasks: the GenerateResource task to compile resources and the Csc task to compile both the source code files and the compiled resources files. Les fichiers de ressources compilés par la tâche GenerateResource sont stockés dans l’élément Resources et transmis à la tâche Csc.The resource files compiled by the GenerateResource task are stored in the Resources item and passed to the Csc task.

<Project DefaultTargets = "Build"  
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >  

    <Target Name="Resources">  
        <GenerateResource  
            Sources="alpha.resx; beta.txt"  
            OutputResources="alpha.resources; beta.resources">  
            <Output TaskParameter="OutputResources"  
                ItemName="Resources"/>  
        </GenerateResource>  
    </Target>  

    <Target Name="Build" DependsOnTargets="Resources">  
        <Csc Sources="hello.cs"  
                Resources="@(Resources)"  
                OutputAssembly="hello.exe"/>  
    </Target>  
</Project>  

Voir aussiSee also

MSBuildMSBuild
GenerateResource, tâche GenerateResource task
Csc, tâche Csc task
Resgen.exe (Resource File Generator)Resgen.exe (Resource File Generator)