Événement
Créer des applications intelligentes
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Lorsque MSBuild compile un projet .NET Core, les fichiers de ressources XML, qui ont l’extension de fichier .resx, sont convertis en fichiers .resources binaires. Les fichiers binaires sont incorporés dans la sortie du compilateur et peuvent être lus par le ResourceManager. Cet article explique comment MSBuild choisit un nom pour chaque fichier .resources.
Conseil
Si vous ajoutez explicitement un élément de ressource à votre fichier projet et qu’il est également inclus avec les globs include par défaut pour .NET Core, vous obtenez une erreur de build. Pour inclure manuellement des fichiers de ressources en tant qu’éléments EmbeddedResource
, définissez la propriété sur EnableDefaultEmbeddedResourceItems
false.
Dans .NET Core 3.0 et versions ultérieures, le nom par défaut d’un manifeste de ressource est utilisé lorsque les deux conditions suivantes sont remplies :
EmbeddedResource
avec LogicalName
, ManifestResourceName
ou DependentUpon
métadonnées.EmbeddedResourceUseDependentUponConvention
propriété n’est pas définie sur false
dans le fichier projet. Par défaut, cette propriété est définie sur true
. Pour plus d’informations, consultez EmbeddedResourceUseDependentUponConvention.Si le fichier de ressources est colocalisé avec un fichier source (.cs ou .vb) du même nom de fichier racine, le nom complet du premier type défini dans le fichier source est utilisé pour le nom de fichier manifeste. Par exemple, si MyNamespace.Form1
est le premier type défini dans Form1.cs et que Form1.cs est colocalisé avec Form1.resx, le nom de manifeste généré pour ce fichier de ressources est MyNamespace.Form1.resources.
Si un fichier de ressources est explicitement inclus dans le fichier projet en tant qu’élément EmbeddedResource
avec LogicalName
des métadonnées, la LogicalName
valeur est utilisée comme nom de manifeste. LogicalName
est prioritaire sur les autres métadonnées ou paramètres.
Par exemple, le nom du manifeste du fichier de ressources défini dans l’extrait de code de fichier projet suivant est SomeName.resources.
<EmbeddedResource Include="X.resx" LogicalName="SomeName.resources" />
-ou-
<EmbeddedResource Include="X.fr-FR.resx" LogicalName="SomeName.resources" />
Note
Si LogicalName
n’est pas spécifié, un EmbeddedResource
avec deux points (.
) dans le nom de fichier ne fonctionne pas, ce qui signifie que GetManifestResourceNames
ne retourne pas ce fichier.
L’exemple suivant fonctionne correctement :
<EmbeddedResource Include="X.resx" />
L’exemple suivant ne fonctionne pas :
<EmbeddedResource Include="X.fr-FR.resx" />
Si un fichier de ressources est explicitement inclus dans le fichier projet en tant qu’élément EmbeddedResource
avec ManifestResourceName
des métadonnées (et LogicalName
est absent), la ManifestResourceName
valeur, combinée avec l’extension de fichier .resources, est utilisée comme nom de fichier manifeste.
Par exemple, le nom du manifeste du fichier de ressources défini dans l’extrait de code de fichier projet suivant est SomeName.resources.
<EmbeddedResource Include="X.resx" ManifestResourceName="SomeName" />
Le nom du manifeste du fichier de ressources défini dans l’extrait de code de fichier projet suivant est SomeName.fr-FR.resources.
<EmbeddedResource Include="X.fr-FR.resx" ManifestResourceName="SomeName.fr-FR" />
Si un fichier de ressources est explicitement inclus dans le fichier projet en tant qu’élément EmbeddedResource
avec DependentUpon
des métadonnées (et LogicalName
et ManifestResourceName
sont absents), les informations du fichier source défini par DependentUpon
sont utilisées pour le nom du fichier manifeste de ressource. Plus précisément, le nom du premier type défini dans le fichier source est utilisé dans le nom du manifeste comme suit : Namespace.Classname[.Culture].ressources.
Par exemple, le nom du manifeste du fichier de ressources défini dans l’extrait de code de fichier projet suivant est Namespace.Classname.resources (où Namespace.Classname
est la première classe définie dans MyTypes.cs).
<EmbeddedResource Include="X.resx" DependentUpon="MyTypes.cs">
Le nom du manifeste du fichier de ressources défini dans l’extrait de code de fichier projet suivant est Namespace.Classname.fr-FR.resources (où Namespace.Classname
est la première classe définie dans MyTypes.cs).
<EmbeddedResource Include="X.fr-FR.resx" DependentUpon="MyTypes.cs">
Si EmbeddedResourceUseDependentUponConvention
est défini sur false
dans le fichier projet, chaque nom de fichier manifeste de ressource est basé sur l’espace de noms racine du projet et le chemin d’accès relatif de la racine du projet au fichier .resx. Plus précisément, le nom du fichier manifeste de ressource généré est RootNamespace.RelativePathWithDotsForSlashes.[Culture.]ressources. Il s’agit également de la logique utilisée pour générer des noms de manifeste dans les versions de .NET Core antérieures à la version 3.0.
Note
RootNamespace
n’est pas défini, le nom du projet est défini par défaut.LogicalName
, ManifestResourceName
ou DependentUpon
métadonnées sont spécifiées pour un EmbeddedResource
élément dans le fichier projet, cette règle de nommage ne s’applique pas à ce fichier de ressources.Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Événement
Créer des applications intelligentes
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantFormation
Module
Design consistent .NET MAUI XAML pages by using shared resources - Training
Learn how to use static and dynamic shared resources to build a .NET Multi-platform App UI (MAUI) user interface. And see how styles can make the user interface both consistent and accessible.