.Net Com объект не может быть создан из VBS - PullRequest
2 голосов
/ 04 мая 2011

Я создал объект com для устаревших приложений (.net framework 3.5)

[ComVisible(true), Guid("...")]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface MyComInterface
{
...
}


[ComVisible(true), Guid("...")]
[ProgId("...")]
[ClassInterface(ClassInterfaceType.None)]
public MyComObject: MyComInterface
{
 ... 
}

он отлично устанавливается и все нормально в реестре (progid, clsid) Я могу создать экземпляр и использовать его из приложений .net:

var t = Type.GetTypeFromProgID("myProgID");
var o = Activator.CreateInstance(t);

Но файл vbs

set o = CreateObject("myProgID")

выдает ошибку: 0x80070002 (файл не найден)

Что здесь может быть не так?

1 Ответ

2 голосов
/ 04 мая 2011

Попробуйте либо:

  1. Установка сборки, содержащей COM-объект .Net, в GAC.
  2. Или с помощью параметра /codebase regasm , чтобы указать абсолютный путь к сборке, содержащей COM-объект .Net.

Вы также можете попробовать скопировать сборку в какое-то место на пути или рядом с файлом VBScript, но я не знаю, сработает ли это или нет.

Вам также следует изучить использование журнала Fusion для регистрации ошибок привязки сборки - это может дать вам некоторые подсказки.

...