web-dev-qa-db-fra.com

le type de ressources n'existe pas dans l'erreur d'espace de noms

Vous avez un autre problème. J'avais presque terminé mon projet, mais j'avais l'impression de devoir changer l'espace de nom du projet. Mais au lieu d’utiliser refactor -> renommer, j’ai choisi mon espace de noms, édité -> rechercher et remplacer et remplacé toute la solution par un espace de noms différent (donc partout dans la solution où par exemple l’espace de noms ou le texte "nom1" existe, est maintenant changé en "nom2").

Mais maintenant, je reçois environ 16 erreurs disant toutes la même chose: "Le type ou l'espace de noms" ressources "n'existe pas dans l'espace de noms name1".

     this.centerPanel.BackgroundImage = global::login_DragDrop.Properties.Resources.oeftest;

Ainsi, par exemple, dans cette ligne de code (principalement dans le fichier designer.cs), les ressources sont colorées en rouge?

Des astuces pour résoudre ce problème? 

16
user3644837

Vous devez exécuter la génération de code sur le fichier de ressources pour obtenir également l'espace de nom correct.

Suivez ces étapes:

  • Ouvrez les propriétés du projet (clic droit> propriétés)
    • cliquez sur la section Application
    • Entrez votre espace de noms par défaut préféré
    • Fermez et enregistrez vos propriétés
  • naviguez dans l'explorateur de solutions vers votre fichier Resouces.resx (sous Propriétés)
    • Cliquez avec le bouton droit sur le fichier Resources.resx.
    • Choisissez 'Exécuter outil personnalisé' (ou alt+L)

Cela exécute à nouveau la génération de code pour les fichiers de ressources. Le code généré vous permet d'avoir un accès fortement typé aux valeurs de vos chaînes de ressources.

27
rene

Exécuter l’outil personnalisé n’a pas fonctionné pour moi . Mais j’ai trouvé que, si j’ajoutais une ressource, le problème était résolu.

Suivez ces étapes:

  • Ouvrez les propriétés du projet (clic droit> propriétés)
  • Cliquez sur la section Ressources
  • Dans la liste déroulante Ajouter une ressource, sélectionnez Ajouter un fichier existant.
  • Sélectionnez n'importe quel fichier de ressource. (J'ai choisi un fichier image existant)
    • À ce stade, mes erreurs ont disparu.
  • Sélectionnez la ressource que vous venez d'ajouter
  • Cliquez sur Supprimer la ressource (pour nettoyer)
  • Fermez et enregistrez vos propriétés

Réponse tardive (très) je sais mais voilà.

5
mohnston

Comme aucune des réponses ne fonctionnait dans mon cas, j'ai décidé de poster par ma propre réponse.

Voici ce que j'ai fait:

  • Créez une classe avec le même nom (X) dans le même espace de nom (Y).
  • L'erreur "L'espace de noms 'Y' contient déjà une définition de 'X'.".
  • Supprimer la classe X.

Après avoir supprimé la classe, ma ressource portant le nom X est restée visible dans l’espace de noms.

1
Petr Kolínek

Vous avez probablement essayé d'ajouter un autre fichier de ressources portant le même nom qu'une ressource déjà existante. Pour résoudre ce problème, supprimez simplement la ligne correspondante dans le fichier Resources.resx. Par exemple, vous verrez deux lignes ayant le même "nom de données":

  <data name="button" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\button.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>
0
kino

Dans mon cas, le fichier Resource.Designer.cs était en quelque sorte exclu du projet ... Cliquez sur afficher les fichiers cachés (afficher tous les fichiers), inclus dans le projet avec un clic droit et le problème a été corrigé. Phew..

0
Nick Kovalsky