Je rencontre un bug particulier lors du développement sur Visual Studio 2017 que j'ai pu ignorer pendant un certain temps, mais commence maintenant à vraiment bug me .
Je parle de ce problème comme d'un bug plutôt que d'une erreur parce que je Je peux toujours créer mes projets dans Visual Studio et les déployer sur mon périphérique de développement sans erreurs ni avertissements de la sortie de la génération. Cela peut sembler bien ignorer un peu, mais avec le temps, c'est devenu un problème parce que mon intellisense le souligne en rouge comme une erreur
chaque fois que je référence des attributs de la classe Resource. Comme vous pouvez le deviner, je fais souvent référence à cette classe et l'éditeur Visual Studio finit par être encombré de ces "erreurs" qui (a) entravent ma capacité à trouver des erreurs réelles dans mon code et (b) m'irrite au-delà de toute raison ...
.
Le fichier de configuration . Csproj contient les balises:
<AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
<AndroidResgenClass>Resource</AndroidResgenClass>
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
<AndroidUseLatestPlatformSdk>false</AndroidUseLatestPlatformSdk>
<TargetFrameworkVersion>v7.1</TargetFrameworkVersion>
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
<MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
<MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
Mise à jour 6/6/2018
Si vous avez ReSharper, vous pourrez très probablement ignorer ma solution par projet décrite ci-dessous et, à la place, installer simplement la dernière version (actuellement ReSharper 2018.1.2). Apparemment, le problème sous-jacent a été provoqué par un bogue dans une version précédente. La mise à niveau a résolu le problème pour moi.
Voir youtrack.jetbrains.com/issue/RSRP-469636 pour plus d'informations.
Merci à @davidbauduin sur les forums Xamarin pour ces informations.
Je crois avoir compris le problème sous-jacent et avoir une solution viable.
Ajoutez ce qui suit au <PropertyGroup>
section dans votre fichier .csproj:
<AndroidUseManagedDesignTimeResourceGenerator>False</AndroidUseManagedDesignTimeResourceGenerator>
Alors que les versions précédentes de Visual Studio avaient cette fonctionnalité désactivée par défaut, la dernière mise à jour VS2017 (15.7.3) l'a activée. Cette fonctionnalité génère un deuxième fichier Resources.Designer.cs qui entraîne le problème de référence ambigu.
Vous pouvez vérifier en survolant la constante de ressource avec l'erreur Intellisense, en cliquant avec le bouton droit, en sélectionnant "Aller à la définition" et en sélectionnant le 1er élément, qui vous amène à un fichier Resource.Designer.cs. Si vous répétez, mais sélectionnez le 2ème, vous serez redirigé vers un autre fichier Resource.Designer.cs. L'un de ces points pointe vers le fichier obj\Debug\designtime\Resource.Designer.cs. En définissant cette fonctionnalité sur False comme décrit ci-dessus, ce fichier Resource.Designer.cs dans le chemin obj\Debug\designtime ne sera pas généré.
https://github.com/dotnet/project-system/blob/master/docs/design-time-builds.md#design-time-builds
J'espère que cela t'aides!