Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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. Si le projet utilise uniquement des chaînes, les fichiers de ressources peuvent utiliser des fichiers texte. Vous pouvez également utiliser des fichiers .resx comme fichiers de ressources.
Compiler des ressources avec MSBuild
La bibliothèque de tâches courantes qui est fournie avec MSBuild inclut une tâche GenerateResource
que vous pouvez utiliser pour compiler les ressources dans des fichiers .resx ou texte. 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. Pour plus d’informations sur la tâche GenerateResource
, consultez GenerateResource, tâche.
Attention
Les ressources dans les fichiers .resx
peuvent être sérialisées à l’aide de BinaryFormatter
, ce qui n’est pas sécurisé. Incluez uniquement ces fichiers .resx
dans votre processus de génération en lequel vous avez confiance.
Pour compiler des ressources avec MSBuild
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.Spécifiez le paramètre
OutputResources
de la tâcheGenerateResource
, qui vous permet de définir les noms des fichiers de ressources de sortie.Utilisez l’élément
Output
de la tâche pour stocker la valeur du paramètreOutputResources
dans un élément.Utilisez l’élément créé à partir de l’élément
Output
en tant qu’entrée d’une autre tâche.
Exemple 1
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
. 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.
Cette tâche revient à utiliser le commutateur /compiler pour 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>
Exemple 2
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. 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
.
<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>