web-dev-qa-db-fra.com

L'URI «clr-namespace» fait référence à un espace de noms qui n'est pas inclus dans l'assembly

J'essaie d'inclure dans mon XAML quelques classes qui convertissent les valeurs. Cependant, j'obtiens l'erreur suivante lors de la compilation:

Espace de noms CLR non défini. L'URI "clr-namespace" fait référence à un espace de noms "View.Summary.Converters" qui n'est pas inclus dans l'assembly. (View\View)

Et le XAML est en erreur sur:

xmlns:c="clr-namespace:View.Summary.Converters"

En outre, voici le plan de mes classes de conversion/espace de noms:

namespace View.Summary.Converters
{
    class CollapsedIfNegative : IValueConverter { }

    class VisibleIfNegative : IValueConverter { }

    class ErrorCodeToString : IValueConverter { }
}

J'ai dû retirer les entrailles du code car le projet sur lequel je travaille est hautement confidentiel.

49
Adam S

J'ai compris ce qui n'allait pas. Bien que Visual Studio ait montré cela comme la première erreur, il y avait en effet d'autres erreurs avec mon codage qui ont empêché les convertisseurs d'être assemblés. Ainsi, lorsque VS est allé chercher l'Assemblée, elle n'était pas là.

18
Adam S

reconstruisez la solution et l'erreur disparaîtra.

54
Avinash

Je viens de résoudre ce problème en changeant la cible de x64 à x86. Apparemment, Visual Studio est un processus 32 bits et il est incapable de charger des assemblys 64 bits, et si votre assemblage cible la plate-forme x64 et que vous ajoutez un contrôle personnalisé, Visual Studio ne peut pas le charger et envoie ce message.

38
Evgeny

Si vous faites référence à un projet externe, vous devez spécifier l'assemblage tel qu'il apparaît dans les références de votre projet:

xmlns:mdls="clr-namespace:MyProject.Models;Assembly=MyProject.Models"
13
Jerther

un problème avec le concepteur vs2008

faites ceci:

  1. fermer le créateur
  2. reconstruire-tout (Alt + B + R) la solution

maintenant il n'y aura plus d'erreurs.

12
joy

J'ai pu reproduire votre problème:

J'ai créé un simple WF dans .NET Framework 4.0. Renommé le fichier xaml. Dans le cadre du changement de nom du fichier xaml, vous devez renommer manuellement le nom d'exécution du workflow lors de l'appel de l'appel sur l'objet WorkflowInvoker. Je crée le projet. J'ai l'erreur "L'URI 'clr-namespace' fait référence à un espace de noms 'System' qui n'est pas inclus dans l'assembly."

Comment je l'ai corrigé:

J'ouvre la page de propriétés du projet. Pour une raison quelconque, le framework cible est passé de .NET Framework 4.0 à la version client 4.0. J'ai donc sélectionné .NET 4.0 et reconstruit le projet. L'erreur n'est plus là.

8
H A

Vérifiez que votre configuration de build a le projet sélectionné pour la build dans votre configuration de build actuelle (active).

J'ai juste eu ce problème après avoir manipulé l'architecture de construction (de x86 à x64) et le projet wpf principal avait été désélectionné.

3
Ash

J'ai rencontré ce problème sur un projet C # WPF. Il semble être généré lorsque vous avez fermé le projet avec la dernière tentative avec des erreurs de toute nature au cours de votre projet, même pas dans l'espace de noms en question en XAML.

La solution consiste à corriger tous les fichiers .CS (ou à exclure les fichiers XAML/CS problématiques) pour obtenir une version en cours de reconstruction et exécuter.

Il m'a fallu près de 3 heures pour comprendre que la version de débogage sur laquelle le concepteur semble fonctionner doit être défectueuse. C'est pourquoi dans de nombreux cas, les gens ont résolu ce problème avec le projet de reconstruction, mais dans les cas où vous avez des erreurs de code existantes dans le projet, le problème ne se résoudra pas automatiquement car la reconstruction ne se termine pas et ne remplace pas la version prise en charge par le concepteur.

j'espère que cela aide!

2
Yonathan Druck

Visual Studio revient toujours aux chemins de fichier d'assemblage impairs. Supprimez simplement le fichier de référence auquel il fait référence, puis ajoutez-le au projet

1
Bhavdeep Singh

J'ai eu la même erreur. Mais apparemment, c'était juste à cause du chemin de la solution que j'essayais de construire. Mon chemin/répertoire/nom de dossier contient des espaces.

0
fleur