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

Не удалось найти тип "xxx.xxx.xxx". Убедитесь, что сборка

Я искал Qaru и обнаружил похожие проблемы при попытке открыть форму, которая ссылается на UserControl в другом проекте.

Я получаю

Чтобы предотвратить возможную потерю данных перед загрузкой конструктора, необходимо устранить следующие ошибки:

сообщение, касающееся следующих двух ошибок:

Не удалось найти тип "MyNamespace.CommonUi.InformationBox". Пожалуйста, сделай убедитесь, что ссылка на сборку, содержащую этот тип. Если это тип является частью вашего проекта разработки, убедитесь, что проект был успешно собран с использованием настроек для вашей текущей платформы или любой процессор.

И

Переменная InformationBox1 либо необъявлена, либо никогда не была назначен.

InformationBox1 является экземпляром пользовательского элемента управления InformationBox, который находится в форме в конструкторе - на него просто ссылаются как;

Friend WithEvents InformationBox1 As MyNamespace.CommonUi.InformationBox

Проект MyNamespace.CommonUi строится успешно.

Я получил в проекте интеллигентность, поэтому я достаточно уверен, что на него ссылаются правильно.

До сих пор так же, как и у других людей:

Это проект, который был перенесен из .NET2/x86 в VS2005 в .NET4/x64 в VS2012.

Теперь, когда решение работает под 64-битной версией, оно не работает, и я получаю эту ошибку дизайнера. Тем не менее, если я переключу его на 32-битный (ну, технически, AnyCPU), я смогу открыть конструктор очень хорошо.

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

4b9b3361

Ответ 1

Я полагаю, что проблема заключается в том, что Visual Studio изначально 32-битная, и нельзя редактировать GUI для некоторых компонентов (например, ListView) в 64-битной. Например. в формах, где у вас есть ListView, вам нужно изменить решение на 32bit для редактирования GUI.

Итак, ответ вкратце: когда вы сталкиваетесь с этой проблемой:

  1. Измените решение на 32bit
  2. Очистите и восстановите решение
  3. Откройте графический интерфейс для редактирования
  4. Сохраните, верните решение на 64bit
  5. Очистить и восстановить
  6. Запустить в 64-битной версии

Смотрите этот вопрос для более подробной информации.

Ошибка дизайнера VS 2010 & # 39; Не удалось найти тип XYZ & # 39; в Windows7. Отлично работает в XP

Ответ 2

У меня была эта проблема. Это произошло только в одном представлении конструктора формы, несмотря на то, что он смог скомпилировать, запустить, показать эту форму во время выполнения и показать другие формы/элементы управления в режиме конструктора.

Эти шаги не помогли:

  • Очистить и восстановить
  • Перезапустить студию
  • Удаление всех каталогов bin и obj
  • Удаление и добавление ссылок
  • Отказ, гнев, торг, депрессия, принятие

Решение для моего случая:

  • Переименуйте тип, который отсутствует (например, InformationBox = > InformationBox2)
  • Refresh designer (WOW, он работает!)
  • Переименуйте тип в его начальное имя

Ответ 3

Измените любой процессор на X86. Ваш 32-битный контроллер пытается работать на 64-битной машине и не может найти 64-битную версию элемента управления.

Ответ 4

Недавно у меня была такая же ошибка с VB.Net в Visual Studio 2013, работающей с пользовательским элементом управления WinForm, который сам наследовал базовый класс пользовательского элемента управления в том же проекте, и сделал некоторые шаги, чтобы выяснить, какова истинная причина было, что в моем случае было то, что ни базовый класс, ни дочерний класс не имели конструктора без параметров (потому что это не допустимый сценарий в этом случае).
Чтобы исправить это, я добавил отсутствующий конструктор, но оставил его пустым (бросание NotImplementedException вызвало еще одну проблему, которая помешала ему отобразить). Это не очень, но это работает.

Чтобы увидеть основную ошибку через тот, который указан в этом вопросе, мне нужно было сделать следующее:

  • Очистить все решение
  • Закрыть Visual Studio
  • Повторно открыть Visual Studio
  • Откроем решение
  • Создайте решение, щелкнув его правой кнопкой мыши в обозревателе решений (не перестроить, это не сработало)
  • Просмотр пользовательского элемента управления в режиме конструктора и фактическая ошибка появляется сейчас

После добавления конструктора мне пришлось снова выполнить вышеуказанные шаги, чтобы он работал правильно.

Ответ 5

Я изменил большое решение с несколькими проектами для целевой платформы x64 от AnyCPU. Пробовал открыть конструктор одной из форм решений, которые ссылались на элемент управления в одном из других проектов и получил то же сообщение об ошибке, что и OP. Открыл проект, содержащий элемент управления, и увидел, что он все еще нацелен на AnyCPU. Пробовал в течение часа, чтобы получить его, чтобы сохранить как x64 без везения. Я в конце концов открыл файл csproj в блокноте, заменил AnyCPU на x64, и все это начало работать. Надеюсь, это поможет кому-то еще расстроиться, как я.

Ответ 6

Ну вот еще информация: the-designer-could-not-be-shown-with-platform-x64

И разрешение для запуска в AnyCPU, когда вы пытаетесь получить доступ к дизайнеру, - это обход и для наших целей.

Ответ 7

Хотя есть много ссылок на 32-разрядные и т.д., шаги, которые работали для меня, были следующими:

  • Преобразуйте все ссылки на пользовательский элемент управления, скажем, 'InformationBox1 as InformationBox 'в полностью квалифицированную ссылку на класс, такую ​​как "MyNamespace.CommonUi.InformationBox", во всех файлах designer.vb.

    • Чистое решение

    • Восстановить решение.

В моем случае это был проект миграции с VB6 на VS2008, и обе среды были 32-битными, и на том же компьютере не было признаков 64-разрядных бит.

Ответ 8

Просто сохраните проект, закройте его, затем снова откройте его.

Ответ 9

Недавно я столкнулся с той же проблемой с одним из моих пользовательских элементов управления (С#) в VS 2015.

Я решил это, очистив решение ("Построить" → "Очистить решение"), а затем перестроил все решение. Все прошло гладко.

Цель платформы настроек моего проекта уже установлена на "Любой ЦП" и отмечена галочкой "Предпочитать 32-битный". Не уверен, почему это произошло, хотя.

Ответ 10

Это происходит, если вы компилируете для x64, потому что разработчик Visual Studio не может загружать сборки x64. Дизайнер Visual Studio может загружать сборки x86 только потому, что это 32-битный процесс!

  • Вы можете либо перейти на AnyCPU
  • build для x86, тогда дизайнер Visual Studio может загружать ваши сборки, чтобы отображать ваши элементы управления во время разработки.
  • Не создавайте сборки x64, создавайте их только через пакетную или в Visual Studio, а затем переключитесь на AnyCPU или x86

Ответ 11

Что я думаю, что вы должны держать себя под контролем UI в отдельном проекте из вашего 64-битного проекта и запускать его с настройками любого процессора. это поможет не очистить и перестроить его с 64 версией.

Ответ 12

Вы можете перейти на любой процессор:

Project => properties => Build

Цель платформы: изменить на Any CPU

Очистить и восстановить, заново открыть файл дизайна.