Система. Время выполнения. InteropServices. COMException (0x80040154)

Я получаю эту ошибку, когда я пытаюсь развернуть свое приложение на целевой машине.

Я погуглил и нашел, что часть потребности dll, которая будет зарегистрирована (которые используются в моем приложении),

Так, я скопировал dll's в System32 и сделал regsvr32

Я затем получил эту ошибку

Interop.ShockwaveFlashObject.dll был загружен, купленная точка входа DllRegisterServer не была найдена. Файл не может быть зарегистрирован

И одна странная вещь состоит в том, что, приложение не работает над только одной машиной. Я протестировал на 10 различных машинах, и все работало хорошо. Это не работало над только одной машиной.

Кто-то может помочь мне на этом?

5
задан Marek Grzenkowicz 2 December 2011 в 14:01
поделиться

2 ответа

DLL Interop не нужно регистрировать, она фактически содержит указатель на существующий зарегистрированный объект COM.

Если следовать обычному соглашению об именах, похоже, что ShockwaveFlashObject.dll не зарегистрирован на машине (это будет DLL, с которой вам следует запустить regsvr32). Предположительно, вам необходимо установить Shockwave / Flash (и / или проверить правильность установленной версии, если вы считаете, что она уже есть на коробке).

2
ответ дан 15 December 2019 в 06:14
поделиться

Эта interop dll не является COM dll, которую нужно зарегистрировать в regsvr32.dll, это interop dll, которая управляет связью между COM и управляемой частью, я полагаю.

Вероятно, вам нужно зарегистрировать какую-то другую dll (т.е. все COM dll, возможно, ShockwaveFlashObject.dll) или у вас есть какая-то другая отсутствующая зависимость. Что отличается на машине, на которой она не работает, от машин, на которых она работает? Все ли зависимости установлены на всех машинах (например, flash?) Различаются ли операционные системы? Возможно, на некоторых новых ОС нет всех старых зависимостей, которые есть на старых машинах.

0
ответ дан 15 December 2019 в 06:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: