Я сделаю это очень просто, поскольку это может очень запутать очень быстро. У меня есть COM DLL (сделано в VB6), который я хотел бы использовать через мое приложение C #. Ниже приведены шаги, которые я предпринял, и результаты.
- Создано COM DLL через Visual Basic 6
- Добавлена COM dll в приложение .Net.
- Получить файл "interop.dllName.dll", созданный .Net в x86 / Debug
- Добавлен файл interop как ссылка на сборку в мой исполняемый файл CodeDom.
- Файл CodeDom, сгенерированный .exe, прекрасно работал на моем компьютере, когда файл .exe находился в том же каталоге, что и файл interop.dllname.dll
- Созданный CodeDom файл .exe не работал , а не на развернутой машине, хотя файл interop.dllname.dll существовал в том же каталоге, что и файл .exe.
Обратите внимание:
Исходный файл COM .dll не зарегистрирован на развернутом компьютере, поскольку развернутый компьютер не распознает файл COM .dll как действительный файл DLL.
COM .dll был создан в среде x86, а развернутая машина работает в среде x64 (это имеет какое-то значение)?
Какова моя цель:
Я хотел бы иметь возможность запуска сгенерированного CodeDom .exe-файла без зависимости от файла interop.dllname.dll. Есть ли способ сохранить эти файлы DLL в памяти? Кроме того, я не хочу, чтобы мой пользователь регистрировал DLL-файлы, прежде чем они смогут использовать созданный CodeDom .exe-файл. Есть ли способ сделать это?
Я ценю любую помощь по этому вопросу.
Спасибо за ваше время,
Evan