У меня возникла проблема при развертывании моего приложения на машинах Win7 x64. Я ссылаюсь на несколько старых DLL, которые являются 32-битными и не могут быть перекомпилированы в x64. Моя машина для разработки - x86, поэтому здесь они работают нормально. На всех клиентских машинах под управлением x64 я получаю сообщение:
Класс не зарегистрирован (исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
в System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object ›punkOuter, контекст Int32, Guid& iid) в
System.Windows.Forms.AxHost.CreateWithLicense (строковая лицензия, Guid clsid)
Я попытался изменить всю целевую платформу на x86 в Visual Studio 2010, но безрезультатно. Я также попытался зарегистрировать dll на клиентском компьютере с помощью regsvr32 внутри папки установки AppdData\Local\Apps\2.0..., но получаю сообщение об ошибке: Модуль Module.dll был загружен, но точка входа DllRegisterServer не найдена. . для каждой отдельной dll, на которую ссылаются. Даже пытался использовать чистую машину x64 и нет.
Это конфликтующие dll (связанные с мультимедийной библиотекой Lead Tools):
AxInterop.LTMMLib.dll
AxInterop.MSComctlLib.dll
AxInterop.MSComDlg.dll
(относится к управлению winforms проигрывателя Windows Media):
AxInterop.WMPLib.dll
Я искал много решений в Интернете, но ни одно из них не работает. Любой вклад приветствуется :)
Заранее спасибо.
... at System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid...
Вам нужно выяснить значениеclsid
, для которого оно не работает. - person Roman R.   schedule 16.10.2012