Ответ 1
Если ваш проект нацелен на 64 бит, вам нужно построить 32-битную версию и выбрать 32-битное решение при редактировании графического интерфейса. Это потому, что студия 32-разрядная, поэтому не может загружать 64-битные элементы управления.
Я застрял в проблеме в 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.
Я не понимаю, почему он жалуется, что не смог найти компонент, поскольку компонент является частью одного и того же проекта. Это правильная вещь, не так ли?
Я искал в Интернете/форумах и обнаружил случаи ошибки "Не удалось найти тип", но, похоже, это вызвано другой проблемой, и я еще не нашел способ избавиться от ошибки.
Любая помощь/советы очень ценятся!
Если ваш проект нацелен на 64 бит, вам нужно построить 32-битную версию и выбрать 32-битное решение при редактировании графического интерфейса. Это потому, что студия 32-разрядная, поэтому не может загружать 64-битные элементы управления.
Прежде всего, я уверен, что в вашем файле кода формы .Designer.cs каждый вызов ваших пользовательских элементов управления выполняется как абсолютные вызовы. Например:
Namespace.CustomControl control;
Вместо
CustomControl control;
Посмотрите на свои ссылки и найдите те, у которых есть значки восклицательных знаков. Удалите плохие ссылки и добавьте их обратно в свой проект.
Вы пробовали отключить UAC полностью (запуск IDE в качестве администратора + отключение UAC на всякий случай). Также - всегда используйте Fusion Log для отслеживания сборочных нагрузок! См. http://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.71).aspx для настройки
Восстановили ли вы компоненты с нуля?
Включены ли проекты?
Все ли они строят?
Все ли они построены на одной платформе (x86 vs x64)?
Задайте значение по умолчанию для x86, которое должно быть исправлено.
Посмотрите, работает ли это.
Для тех, кто с аналогичными проблемами. Я просто наткнулся на это в VS 2013 (VB) на ПК x86. Как упоминалось выше, я переключился с "anyCPU" на "x86", и разработчик форм открыл его. Простой, но, вероятно, не пробовал бы это без вышеуказанных сообщений. Для чего это стоило, я переключился на "anyCPU" и пока не имел никаких повторений...
Я столкнулся с той же ошибкой, не могу создать свое приложение.
Итак, поиск здесь, говорит об изменении платформы решений X64 или X32. Но в моем случае на платформе Solution отображаются только опции "Только для процессора и менеджера конфигурации"
Но я просто изменяю конфигурацию решения.
Отладка = > Выпуск
то
Отпуск = > Отладка
Наконец, очистите и перестройте решение. Его работы для меня!!:)