103 votes

Comment corriger l'erreur "l'espace de noms x contient déjà une définition pour x" ? S'est produite après la conversion en VS2010

Spécifiquement, l'erreur se produit dans le fichier Resources.Designer.cs:

Erreur 2 L'espace de noms 'ModulusFE' contient déjà une définition pour 'StockChartX' Resources.Designer.cs 11 21 ModulusFE.StockChartX

J'ai fait des recherches sur Google et je suis toujours assez confus. Est-ce que quelqu'un sait quelque chose que je pourrais essayer?

J'ai essayé de reconstruire et de nettoyer, ainsi que de renommer le fichier Resources.Designer.cs dans l'espoir qu'il se reconstruirait, mais sans succès.

Le haut du code dit ceci:

// 
//     Ce code a été généré par un outil.
//     Version d'exécution: 4.0.30319.225
//
//     Les modifications apportées à ce fichier peuvent entraîner un comportement incorrect et seront perdues si
//     le code est régénéré.
// 

Toute idée serait appréciée.

2voto

P Walker Points 236

Cela peut être un cas un peu particulier, mais nous avons rencontré cela dans notre environnement de développement de temps en temps. Nous avons dû configurer une culture personnalisée dans Windows pour prendre en charge en-HK. Windows 8.1 prend désormais en charge cette culture de manière native, tout comme Windows 2012 R2, mais les anciennes machines doivent avoir la culture créée. Toute machine qui n'a pas cette culture configurée recevra cette erreur signalée. La solution est de créer la culture sur la machine (nous avons une application console créée à cet effet) et tout recommence à fonctionner.

2voto

Chad Kuehn Points 240

J'ai eu quelque chose de similaire se produire dans mon application WPF. C'est survenu lorsque j'essayais de faire un peu de nettoyage en déclarant un espace de noms plus descriptif. Le problème est survenu parce que j'avais nommé l'espace de noms dans le code-behind (ou cs) de la même manière que la classe Window. L'espace de noms dans le code-behind devrait avoir la dernière section supprimée (après le point le plus à droite) et utilisée pour déclarer et instancier la classe. Remarquez Win ci-dessous:

xaml

code-behind

namespace FrameApp.UI.Invoice
{
    public partial class Win : Window
    {
        public Win()
    }
}

Une négligence évidente mais cela m'a fait perdre au moins une heure avec toutes les erreurs qui sont apparues.

2voto

solsol Points 1111

J'ai eu le même problème juste maintenant, et j'ai réalisé que c'était l'une des erreurs les plus simples à commettre. Je créais des classes, copiant et collant du code d'un fichier de classe à l'autre. Lorsque j'ai changé le nom de la classe dans, disons Class2, par exemple, il y avait un menu déroulant à côté du nom de la classe demandant si je voulais changer toutes les références à Class2, ce qui, lorsque j'ai sélectionné 'oui', a changé le nom de Class1 en Class2 à son tour.

Comme je l'ai dit, il s'agit d'une négligence très simple qui m'a fait me gratter la tête pendant un court instant. Mais vérifiez bien vos autres fichiers, en particulier le fichier source à partir duquel vous avez copié, pour vous assurer que VS n'a pas modifié le nom à votre insu, en arrière-plan.

2voto

frezq Points 350

Si vous utilisez différents fichiers aspx.cs qui définissent des classes du même nom, vous pouvez utiliser

sous dans votre fichier web.config.

Bien que je vous conseille toujours vivement de changer le nom de la classe.

2voto

Miki Points 370

J'avais un problème similaire (projet universel, Visual Studio 2015), je l'ai résolu avec les modifications suivantes :

Dans App.xml.cs était (c'était bon) :

namespace Test.Main {

Mauvaise, ancienne version d'App.xml :

x:Class="Test.Main"

Bonne, nouvelle version d'App.xml :

x:Class="Test.Main.App"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X