2015-03-03 2 views
0

У меня есть программа (VB.NET), которая при запуске как часть пакета DTS (с использованием WS Shell) отлично работает и имеет доступ к путям реестра. Но когда я запускаю одну и ту же программу локально, она терпит неудачу и не может получить доступ к реестру.Проблема с кодом VB.NET, доступ к реестру

Ниже приведенный фрагмент кода, который, как я думаю, вызывает проблему.

Sub Main()    
     Dim RegObjRegistry_definst As RegObj.Registry 
     Try 

      RegObjRegistry_definst = New RegObj.Registry 
      'The above object has Nothing after defination on a local run 

      Console.WriteLine("Success") 
      Console.ReadLine() 

     Catch ex As Exception 
      Console.WriteLine(ex.Message) 
      Console.ReadLine() 
     End Try 
    End Sub 

Ниже приведены ссылки в проекте:

enter image description here

Библиотеки DLL выделены позволяет получить доступ к реестру

Сервер является x86 и платформа сборки проекта является x86

Профили пользователя, работающие как с пакетом DTS, так и с локальным запуском эквивалентны (админы).

Ниже ошибка я получаю, когда я бегу это локально:

Retrieving the COM class factory for component with CLSID {C55A1680-CD5A-11CF-8D 
29-444553540000} failed due to the following error: 80040154. 

Но он работает нормально внутри пакета DTS. На данный момент я пытаюсь понять, почему это вызывает ошибку в локальном запуске, что необходимо сделать для исправления.

Я понимаю, что есть новые подходы/библиотеки для доступа к реестру в VB.Net, но для целей программы мне нужно найти решение с помощью RegObj.dll.

Спасибо!

ответ

0

Вам не нужно использовать COM. Я думаю, что My.Registry доступен во многих .Net Framework, если он не существует в том, который вы используете. в чем дело ?

0

Компонент COM не зарегистрирован на компьютере. Используйте regsvr32 для его регистрации.

Смежные вопросы