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

Ошибка конструктора VS 2010 "Не удалось найти тип XYZ" в Windows7. Прекрасно работает в XP

Я застрял в проблеме в VS 2010 С#.NET. У меня был проект в Windows XP, который включает в себя формы, классы и несколько моих собственных компонентов. Эти компоненты являются простыми расширениями встроенных компонентов MS (например, DataGridViewEx как расширение DataGridView). Все отлично работает в XP. Я пытаюсь перенести этот проект на VS 2010 в Windows 7/x64. У меня есть решение скомпилировать ОК в Windows 7, однако в режиме разработки, когда я открываю форму, содержащую один из настраиваемых элементов управления, появляется ошибка "Не удалось найти тип XYZ.DataGridViewEx. Убедитесь, что в сборке, содержащей этот тип, указывается. ' XYZ - это пространство имен, которое я использую для этих элементов управления, и это то же пространство имен, что и формы, использующие элементы управления. Все они являются частью одного и того же проекта VS.

Когда я открываю форму в том же проекте, который не содержит один из этих настраиваемых элементов управления, эта форма открывается ОК в конструкторе, и я вижу пользовательские элементы управления в левой части панели инструментов. Однако, если я попытаюсь перетащить один из этих элементов управления в эту форму, появится окно с сообщением об ошибке "Не удалось загрузить элемент панели инструментов DataGridViewEx". Он будет удален из панели инструментов. И затем он удаляется из панели инструментов.

Все отлично работало в VS-решении в XP. Эта проблема возникает только в решении VS в Windows 7/x64.

Я не понимаю, почему он жалуется, что не смог найти компонент, поскольку компонент является частью одного и того же проекта. Это правильная вещь, не так ли?

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

Любая помощь/советы очень ценятся!

4b9b3361

Ответ 1

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

Ответ 2

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

Namespace.CustomControl control;

Вместо

CustomControl control;

Ответ 3

Посмотрите на свои ссылки и найдите те, у которых есть значки восклицательных знаков. Удалите плохие ссылки и добавьте их обратно в свой проект.

Ответ 4

Вы пробовали отключить UAC полностью (запуск IDE в качестве администратора + отключение UAC на всякий случай). Также - всегда используйте Fusion Log для отслеживания сборочных нагрузок! См. http://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.71).aspx для настройки

Ответ 5

Восстановили ли вы компоненты с нуля?

Включены ли проекты?

Все ли они строят?

Все ли они построены на одной платформе (x86 vs x64)?

Ответ 6

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

Ответ 7

  • Очистите решение
  • Создайте проект, содержащий элемент управления
  • Добавьте элемент управления в панель инструментов/форму

Посмотрите, работает ли это.

Ответ 8

Для тех, кто с аналогичными проблемами. Я просто наткнулся на это в VS 2013 (VB) на ПК x86. Как упоминалось выше, я переключился с "anyCPU" на "x86", и разработчик форм открыл его. Простой, но, вероятно, не пробовал бы это без вышеуказанных сообщений. Для чего это стоило, я переключился на "anyCPU" и пока не имел никаких повторений...

Ответ 9

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

Итак, поиск здесь, говорит об изменении платформы решений X64 или X32. Но в моем случае на платформе Solution отображаются только опции "Только для процессора и менеджера конфигурации"

Но я просто изменяю конфигурацию решения.

Отладка = > Выпуск

то

Отпуск = > Отладка

Наконец, очистите и перестройте решение. Его работы для меня!!:)