Я добавил типы к моим классам .NET, которые я использую для взаимодействия COM. Чтобы заставить его работать с моим приложением VB6, я незарегистрировал DLL и перерегистрировал его (используя regasm
). Затем я удалил и переустановил его на GAC (используя gacutil
).Нужно ли мне заставить GAC перезагрузить сборку? Это возможно?
Типы отображаются в проводнике объектов VB6, но когда я запускаю приложение в VB6 IDE, он разбивается на строку, которая создает новые типы с ошибкой: Automation Errror - The System cannot find the file specified
.
Я думал, что это странно, так как я уже обновил GAC, так что я удалил в DLL из GAC и получил ту же самую ошибку, которая, кажется, показывают, что более старая версия DLL уже в памяти и потребностей для «перезагрузки», чтобы новая DLL находилась в памяти. Возможно ли это, и если да, что мне нужно делать?
Я не уверен, что я смотрю в нужном месте в реестре, но когда я смотрю в соответствующем ключе в 'CLSID', в списке нет определенной DLL, а есть ключ, называемый' InprocServer32', значения для '(по умолчанию)', 'Assembly',' Class', 'RuntimeVersion' (это v4.0.30319) и' ThreadingModel'. Поскольку DLL не указана (как было бы, если бы я использовал параметр '/ codebase' с' regasm'), я предполагаю, что он пытается использовать файл из GAC, но для него не похоже, что файл из GAC всегда загружается в память, когда он изменяется, но я не уверен. –