Страница: 1 |
Страница: 1 |
Вопрос: Как на VB.Net написать dll и вызвать ее из Access?
Добавлено: 16.07.10 14:32
Автор вопроса: Jak | Web-сайт:
Задача: Написать dll формирующую отчеты Crystal Reports и вызывать её из VB.Net проекта и из MS Access.
Что сделал:
На vb.net написал COM класс, скомпилировал, зарегистрировал regasm'ом, в аccess'е сделал ссылку на библиотеку. всё хорошо вызывается, отчеты формируются.
Проблемы начинаются когда пытаюсь раздать dll пользователям ms access. На их машинах регистрирую dll'ку. Она успешно регистрируется, но при попытке создать на VBA в экземпляр класса вылетает с исключением вне зависимости от того установлен на этой машине проект или нет.
Runtime error '-2147024894 (80070002)'
Automation error
Не удается найти указаннный файл.
Из VB.Net проекта у пользователей всё работает и формируется.
Думаю, что это связано с тем, что моя dll ссылается на другие dll, которых нет у пользователей или она ищет их не там где надо.
В папке с публикацией VB.Net нашел crystalreports10_5\CRRedist2008_x86.msi. Установил. Не помогло.
Я вижу два пути решения:
1. Сделать проект установки, который бы устанавливал и регистрировал на машине пользователя мою dll и всё, что ей требуется. Не смог нигде найти примера. Расскажите по шагам как это сделать или дайте ссылку
2. Посмотреть в ссылках все dll, на которые ссылается мой com класс и зарегить их вручную. Думаю идея не очень, потомучто те dll в свою очередь ссылаются еще на что-нть и т.д..
Буду рад любому ответу: Пошаговой инструкции, ссылке на статью, идее... :)
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
Сергей
ICQ: 558230345
Вопросов: 7
Ответов: 91
Профиль | | #1
Добавлено: 16.07.10 15:13
в какой папке сохраняешь и регистрируешь библиотеку?
Номер ответа: 2
Автор ответа:
Jak
ICQ: 340809754
Вопросов: 17
Ответов: 25
Web-сайт:
Профиль | | #2
Добавлено: 16.07.10 15:18
c:\account2\lib
c:\account2\ - папка access проекта (ade)
в подпапку lib планирую кидать dll'ки
Номер ответа: 3
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #3
Добавлено: 16.07.10 17:12
Сложно сказать, не пробовал FileMon'ом посмотреть какой файл он пытается найти?
Номер ответа: 4
Автор ответа:
Jak
ICQ: 340809754
Вопросов: 17
Ответов: 25
Web-сайт:
Профиль | | #4
Добавлено: 26.07.10 16:42
Cделал Setup Project в Solution на NET.
После его запуска он сам регистрирует мой COM объект и устанавливает всё зависимости.
Всё работает!