Проблема с внешней COM сборкой
От: Lexxington  
Дата: 22.01.07 21:17
Оценка:
Решается следующая задача: получение списка доступных серверов SQL Server.
Для решения используется внешняя сборка COM 'Microsoft SQLDMO'(Interop.SQLDMO.dll)
Код следующий:

serverComboBox.Items.Clear(); //Clearing ComboBox

// create a SQL Distributed Management Objects (SQL-DMO) application object
SQLDMO.Application dmo = new SQLDMO.Application();
// retrieve the available servers
SQLDMO.NameList serverNameList = dmo.ListAvailableSQLServers();

// iterate over the collection of available servers
for (int i = 0; i < serverNameList.Count; i++)
{
      if (serverNameList.Item(i) != null)
           serverComboBox.Items.Add(serverNameList.Item(i));
}


При добавлении ссылки на сборку в solution на моем компьютере все работает нормально.
Проблема заключается при запуске программы на другом компьютере.

Вылетает следущий exception:

Retrieving the COM class factory for component with CLSID
{1002.........} failed due to the following error: 80040154


Подскажите, как можно решить данную проблему, т. е. как сделать, чтобы программа запускалась не только на моем компьютере, а на любом компе, где стоит Framework, скопирован exe-шник и dll-ка.
А может, вы подскажете другое решение поставленной задачи без использования COM.
Re: Проблема с внешней COM сборкой
От: Константин Л. Франция  
Дата: 22.01.07 21:31
Оценка:
Здравствуйте, Lexxington, Вы писали:

[]

L>Вылетает следущий exception:

L>
L>Retrieving the COM class factory for component with CLSID
L>{1002.........} failed due to the following error: 80040154
L>


0x80040154 — это REGDB_E_CLASSNOTREG. Кроме копирования DLL нужно ее еще и регистрировать в реестре. Google, кстати, выдает вполне однозначные ссылки. Почему не пользуемся?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.