#.net #vb.net
#.net #vb.net
Вопрос:
У меня есть vb.Сетевое приложение, в которое я включил элемент управления, который был специально разработан кем-то другим. Я включил элемент управления в свое приложение, но периодически получаю сообщение «Тип’myMapControl.myMapControl’ не определен» при компиляции. Ошибка находится в файле Form1.Designer.vb в следующих строках (в данном случае мое имя формы — «Form1»).
Me.myMapControl1= New myMapControl.myMapControl
Me.myOthermapControl = New myMapControl.myMapControl
Если я добавлю «глобальный» квалификатор:
Me.myMapControl1= New Global.myMapControl.myMapControl
Me.myOthermapControl = New Global.myMapControl.myMapControl
затем я могу скомпилировать, и какое-то время все работает нормально. Я могу компилировать, изменять, перекомпилировать и т. Д. Однако в конечном итоге квалификатор «Global» исчезает, и мне приходится его повторно добавлять. Что я делаю не так. Я убедился, что dll элемента управления была добавлена в качестве ссылки.
Комментарии:
1. Возможно ли, что у вас есть коллизия пространства имен? Каково пространство имен вашего текущего проекта?
2. Это обычная ловушка VS2010. Измените . Цель NET framework из профиля клиента в полный профиль.
Ответ №1:
У меня была эта проблема. Я был немного глуп и назвал элемент управления тем же, что и пространство имен по умолчанию для проекта
Пространство имен = PAStatusGrid
Control = PAStatusGrid.vb
Каждый раз, когда вы редактируете дизайн своей формы, он восстанавливает код .designer.vb и удаляет префикс [Global.], который вы должны ввести.
Проверьте имена элементов управления и пространства имен и убедитесь, что они не конфликтуют
Ответ №2:
файл designer.vb динамически редактируется графическим интерфейсом редактора форм. вот почему глобальная команда исчезает. идея сделать так, чтобы это не требовалось, состоит в том, чтобы установить свойство compile для файла dll, чтобы убедиться, что он скомпилирован в папку debug. надеюсь, это поможет.