Avertissement .NET pour Android XA4214
warning XA4214: The managed type `Library1.Class1` exists in multiple assemblies: Library1, Library2. Please refactor the managed type names in these assemblies so that they are not identical.
warning XA4214: References to the type `Library1.Class1` will refer to `Library1.Class1, Library1`.
Si deux types C# de différents assemblys héritent et partagent Java.Lang.Object
le même nom complet, ce nom fait toujours référence à l’un des types utilisés dans les fichiers de ressources Android.
La façon classique de résoudre cet avertissement consiste à renommer les types afin que chaque nom complet existe uniquement dans un seul assembly.
Une autre option consiste à ajouter [Register]
des attributs sur les types managés en conflit afin que chacun d’eux possède un nom de type Java unique.
Une troisième option consiste à qualifier les noms de type avec le nom de l’assembly dans les fichiers de ressources Android. Par exemple, utilisez le nom Library1.Class1, Library
qualifié par l’assembly plutôt que simplement Library1.Class1
. Cela fonctionne uniquement dans les emplacements où le schéma XML autorise un nom de type dans un attribut XML. Un exemple est l’attribut class
sur fragment
les éléments.
Si vous choisissez d’utiliser [Register]
des attributs ou des noms qualifiés d’assembly plutôt que de renommer les types managés, vous pouvez masquer les avertissements en ajoutant le /warnasmessage:XA4214
commutateur à la ligne de commande MSBuild ou en ajoutant XA4214
à la $(MSBuildWarningsAsMessages)
propriété dans votre fichier .csproj :
<PropertyGroup>
<MSBuildWarningsAsMessages>XA4214</MSBuildWarningsAsMessages>
</PropertyGroup>