Я только что обновился с ActiveReports 2.0 до 3.0. Все файлы rpx были преобразованы в файлы *.vb. Проект ActiveReports имеет следующую иерархию классов:
*.vb с дизайнером -> PrintBase.vb -> ActiveReport3
Когда я открыл любой из файлов *.vb, я получил эту ошибку:
Конструктор не может быть показан для этого файла, потому что ни один из классов в нем не может быть спроектирован. Разработчик проверил следующие классы в файле: xxx --- Не удалось загрузить базовый класс PrintBase. Убедитесь, что на сборку есть ссылка и что все проекты построены.
Стек вызовов: в System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.EnsureDocument (менеджер IDesignerSerializationManager) в System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad (менеджер IDesignerSerializationManager) в Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad( IDesignerSerializationManager serializationManager) в System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad (хост IDesignerLoaderHost)
Затем я прошел через PrintBase.vb. Ошибки компиляции не было. Затем я изменил один из файлов *.vb на это:
Hello.vb -> ActiveReport3
Конструктор работал без проблем. В PrintBase довольно много кода. Чтобы упростить отладку, я создал новый файл .vb с именем BasePrint, который наследуется от ActiveReport3. Итак, иерархия возвращается к:
Hello.vb -> BasePrint -> ActiveReport3
Затем я снова увидел ту же ошибку выше. Похоже, что дизайнер AR3 не позволяет файлам .vb наследоваться от базового класса в соответствии с моей отладкой. Но я не совсем уверен. Кстати, проект ActiveReports — vb.net. Существуют и другие проекты С# в рамках проектного решения VS 2008. Является ли смешивание проектов VB.NET и С# чем-либо для процесса миграции/обновления?
Спасибо.