2012-01-05 2 views
2

Я создал библиотеку классов com с vb.net. Я зарегистрировал dll с regasm. Затем я импортировал и использовал его в проекте vb6. Я заметил, что если я отменил регистрацию библиотеки и зарегистрировал ее снова, то я получу следующую ошибку:com класс библиотека регистрация

Ошибка времени выполнения '-2147024894 (80070002)': Ошибка автоматизации.

Чтобы снова использовать библиотеку, мне нужно перестроить библиотеку с различными ClassId, InterfaceId, EventsId в классах и затем зарегистрировать новую dll.

Это происходит специально, и это должна быть функциональность, или я делаю что-то неправильно?

Заранее спасибо.

PS: он также делает то же самое, если я перезаписываю зарегистрированный файл с тем же файлом или, если я переименую его папку, а затем переименую его обратно в свое прежнее имя. Требуется перепрофилирование и перерегистрация.

+0

Какая текстовая строка вы используете для регистрации и отмены регистрации? Что говорит релиз regasm - регрессия сообщает о какой-либо ошибке? –

+0

regasm mypath \ mylib.dll. Он успешно зарегистрирован, иначе он вообще не работает. – reven

+0

Как насчет того, когда вы отмените регистрацию - какая строка выводится из regasm? –

ответ

4

Вы должны использовать /codebase командной строки при регистрации, если вы не устанавливаете сборку в GAC (он должен быть сильным именем, чтобы быть в состоянии сделать это)

Отъезд Regasm reference для получения дополнительной информации

+0

Чтобы быть понятным, да, вы должны использовать опцию «codebase», и нет необходимости иметь сильное имя. Сильное имя требуется только для его размещения в GAC. – tcarvin

+0

@tcarvin - не в соответствии с документами MS: 'Аргумент assemblyFile, который вы указываете с параметром/codebase, должен быть сборкой с сильным именем. –

+0

Нет, эта документация совершенно неверна. Требование сильного имени доступно только для ПКК. Вы получите предупреждение, когда используете/codebase («вы собираетесь создавать DLL Hell»), но вы можете игнорировать его, пока вы делаете это только на своей машине dev. –

Смежные вопросы