Подтвердить что ты не робот

Тег 'XXX' не существует в пространстве имен XML 'clr-namespace: YYY'

Я внедрил конвертер для преобразования Int32 в String, чтобы иметь возможность привязывать свойство к текстовому блоку.

Я реализую этот конвертер в пространстве имен MyApp.Converters и называется Int32ToStringConverter.

Затем в моем axml я добавляю ссылку на мой конвертер следующим образом:

<Window x:Class="MusicaDB.Views.PrincipalView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:i="namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
        **xmlns:converter="clr-namesapce:MyApp.Converters, aseembly=MyApp**">

Позже, в windows.Resources у меня есть:

<Window.Resources>
        <**converter:Int32ToStringConverter** x:Key="Int32ToStringConverter" />
</Window.Resources>

Я получаю сообщение об ошибке, что конвертер Int32ToString не существует в пространстве имен MyApp.Converters, assembly = MyApp.

У меня есть проект на локальном жестком диске, в свойствах проекта, целевой .NET является платформой 4.0, а не клиентом профиля 4.0, и я пытаюсь очистить решение и перекомпилировать, но проблема не устранена.

В основном, это два решения, которые я всегда нахожу, но не решу проблему.

4b9b3361

Ответ 1

Три исправления, которые нужно сделать здесь:

  1. Без пробелов → xmlns:converter="clr-namesapce:MyApp.Converters,aseembly=MyApp"
  2. Без орфографических ошибок → xmlns:converter="clr-namespace:MyApp.Converters,assembly=MyApp"
  3. Правые разделители → xmlns:converter="clr-namespace:MyApp.Converters;assembly=MyApp"

Из документации:

Обратите внимание, что символ, отделяющий токен пространства имен clr от его значения, является двоеточием (:), тогда как символ, отделяющий токен сборки от его значения, является знаком равенства (=). Символ, используемый между этими двумя токенами, является точкой с запятой. Кроме того, нигде не указывайте пробелы в объявлении.

Ответ 2

Другим возможным решением этой проблемы является то, что вы не используете ту же версию .Net в своем проекте и своей библиотеке.

Ответ 3

Я изучаю, почему это происходит, но если ваш конвертер находится в основной сборке, удаление сборки = из тэга xmlns: converters следует удалить эту ошибку сборки.

Ответ 5

Все ответы правильные. И после попытки всех из них, и вы не можете настроить, почему это происходит, все выглядит хорошо, пожалуйста, перезапустите Visual Studio.

Это работало для меня, потратив почти 1 час. Я нашел все в порядке, но перезапустил VS с администрацией.

Ответ 6

Я вижу две возможные причины. Во-первых, вы ошибочно написали "сборку" как "сборку" в первой выделенной строке. Изменение орфографии может быть достаточно. Вторая возможность заключается в том, что вы не добавили MyApp.dll к вашим проектам, которые выглядят следующим образом

enter image description here

в Visual Studio.

Ответ 7

В моей ситуации у меня была та же проблема с xmlns:local="clr-namespace:<mydefaultnamespace>".   Я решил это изменить порядок включений. Я поставил его первым, и все было решено.   Странное поведение, но это было моим обходным решением, которое я нашел в своей ситуации.

Ответ 8

используйте тег сборки, только если он находится в другом проекте. другое разумное использование только тега пространства имен. Для меня это устранило проблему

Ответ 9

Есть одна очень неясная ситуация, когда вы получаете эту ошибку - если вы используете Microsoft.mshtml.dll и вы обновляете Windows 10 к юбилейному выпуску, или, как оказалось, также и выпуск Creator.

Даже если это не то, что происходит с вами, убедитесь, что библиотека, содержащая компонент, который не может быть найден, может быть полностью скомпилирована. Посмотрите в списке ошибок (не в сетке, а в консоли вывода) какие-либо подсказки.

В моем случае я использовал Microsoft.mshtml.dll как часть редактора HTML, и он как-то был незарегистрирован (в GAC).

Следующая статья объясняет скриншотами:

https://techninotes.blogspot.com/2016/08/fixing-cannot-find-wrapper-assembly-for.html#comment-form

Короче говоря, я должен был запустить командную строку Visual Studio (от имени администратора) и запустить эти команды:

cd C:\Windows\assembly\GAC\Microsoft.mshtml\7.0.3300.0__b03f5f7f11d50a3a
regasm Microsoft.mshtml.dll

Я сказал неясным :-) Важным моментом является чтение ошибок, которые могут быть скрыты среди всех ваших предупреждений, потому что может быть важная подсказка.

Это может быть особенно запутанным, если обновление операционной системы внезапно нарушает ваш проект.

Ответ 10

В моем случае сборка, в которой содержалось пространство имен, физически отсутствовала.

Я проверил ссылки сборки, которые имели ошибку сборки, и посмотрел на свойства рассматриваемой сборки.

Я перешел на путь и обнаружил, что сборка действительно отсутствовала (что я понял, было моим собственным), что порождает ошибочную ошибку.

Ответ 11

В моем случае это было потому, что в проектах есть разные версии некоторых пакетов NuGet.