Класс не зарегистрирован HRESULT 0x80040154 - PullRequest
2 голосов
/ 10 января 2009

Я использую .NET Framework версии 6.0 в Windows Vista. Я недавно установил программу, которая отображает графики. Когда я открываю его, я получаю сообщение об ошибке от платформы Microsoft .NET:

Класс не зарегистрирован (исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Как мне решить проблему? Спасибо.

Ответы [ 3 ]

1 голос
/ 09 апреля 2009

Вероятно, это связано с отсутствующей зависимостью или неверной версией какого-либо двоичного файла. Вы можете увидеть управляемые (MSIL) зависимости, просматривая манифесты сборок с помощью средства IL Disassembler (ildasm.exe). Чтобы исследовать зависимости в неуправляемом (собственном) мире, используйте средство для обхода зависимостей (зависимость.exe). Эти инструменты по-разному поставляются с .NET Framework, Visual Studio и т. Д. Или могут быть доступны на веб-сайте Microsoft.

1 голос
/ 09 апреля 2009

Я думаю, что 6.0 - это версия для Windows. Это соответствует версии Vista.
Однако проблема связана с регистрацией COM. Существует класс, который не зарегистрирован и, вероятно, (как отметил Абеленки) не прошел настройку, поскольку он не был выполнен от имени администратора. Мой совет:

  1. снова запустите установку как администратор (это должно произойти автоматически, если установка была названа setup или install или с именем с этими словами), затем повторите попытку
  2. если это не работает, запустите приложение от имени администратора
  3. если все еще не работает, попробуйте поискать зависимости, здесь я бы использовал Depencency Walker на COM-dll ссылки на программы.

Существует еще нерешенная проблема, если программа не ваша, то есть эти COM-библиотеки, ссылки на программы? Хорошо, здесь я бы:

  1. попытаться зарегистрировать все dll в папке программы
  2. если это не сработает, я бы попробовал сортировку папок System32 по дате создания.

Я думаю о приложении, которое не полностью поддерживается в Vista, и о том, как форсировать его установку.

Есть еще идеи?

1 голос
/ 10 января 2009

Простой ответ: вы регистрируете класс. (если вы знали, какой класс не был зарегистрирован, и в какой библиотеке он находился.) Но это большая ошибка из-за ошибок, таких как эта, из-за которых они не сообщают вам эти важные детали.

Я думаю, что ваш лучший вариант - удалить программное обеспечение и переустановить его внимательно, внимательно прочитав каждую панель установки, проверив наличие предварительных условий или любые другие инструкции. И обязательно запустите установщик с «Запуск от имени администратора».

Если это не помогло, обратитесь в службу технической поддержки для программного обеспечения.

...