Определение пути к исполняемому файлу для пользовательского элемента управления
Я создал пользовательский элемент управления с помощью VB.NET в Visual Studio 2008, который предоставляет расширенные функции сопоставления и отслеживания для приложения поиска и спасения. Проблема, с которой я сталкиваюсь, заключается в том, что в ряде мест мне нужно определить путь к исполняемому файлу основных приложений, чтобы найти несколько каталогов, которые должны работать для правильного функционирования элемента управления. Все отлично работает, когда я использую его в VS, но когда я пытаюсь встроить элемент управления в форму в отдельном решении, я получаю следующую ошибку:
Не удалось создать компонент MainControl. Сообщение об ошибке следующее: "System.IO.DirectoryNotFoundException: не удалось найти часть пути" C:\Program Files\Microsoft\Visual Studio 9.0\Common\IDE\GIS\Data\Default...
Кажется, это указывает на то, что он ищет каталог \ GIS \ Data \ Default в пути к программе Visual Studio, но я использовал Application.StartupPath, чтобы определить это местоположение по всему элементу управления.
Эта ошибка возникает только при попытке встроить элемент управления в форму вне решения управления. Решение, которое я создал для разработки этого элемента управления, имеет два проекта (один для элемента управления и один для тестовой формы для отладки)
Может ли кто-нибудь дать мне руководство по этому вопросу?
1 ответ
Это произойдет, когда ваш элемент управления выполнит код во время его использования в конструкторе. Это так, такие вещи, как конструктор, событие Load, событие Paint и т. Д. Будут запускаться, когда вы удаляете элемент управления из формы в Visual Studio.
Вам нужно использовать свойство DesignMode, чтобы предотвратить запуск и сбой этого кода, если текущий рабочий каталог неверен. Это будет неправильно в конструкторе, рабочий каталог - это Visual Studio, а не приложение, в котором он в конечном итоге будет использоваться. Или используйте абсолютные пути, а не относительные пути.
Если это не помогает, то как отладить проблемы времени проектирования, объясняется здесь.