Причина, по которой он не работает для вас, заключается в том, что ваше приложение WPF работает как 64-разрядное.
Приложение .NET может работать как 32-разрядное или 64-разрядное; и CLR JIT привязывает ваше приложение к любой архитектуре, на которой работает приложение - в данном случае 64-разрядное.
Кроме того, теперь вы хотите, чтобы ваше 64-битное приложение загружало 32-битную DLL. Это невозможно. 64-битный процесс может загружать только 64-битные библиотеки. 32-битный процесс может загружать только 32-битные библиотеки. Никакое количество проблем с регистрацией COM-объектов не изменит это; речь не идет о пропущенных записях реестра.
Adobe Flash поставляется только в виде 32-разрядной библиотеки DLL. У Adobe нет сейчас (и, надеюсь, никогда не будет) 64-разрядной версии.
Чтобы приложение WPF .NET загружало 32-битную флэш-библиотеку, оно должно выполняться как 32-битный процесс. В конфигурации сборки Visual Studio есть способ заставить ваше приложение .NET ориентироваться только на x86
, а не Any CPU
.
Выбор целей ЦП:
- Любой процессор
- x86
- 64
- 1022 * Itanium *
Flash, как бы то ни было, также не имеет версии Itanium.
См. StackOverflow: цель Visual Studio «Any CPU» для получения дополнительной информации о целевом процессоре.