Я создал простой проект библиотеки классов в Visual Studio 2008, в котором есть один класс, как показано ниже.Я пытаюсь заставить этот класс регистрироваться для взаимодействия COM, чтобы я мог использовать его через неуправляемые скрипты, такие как vbscript или jscript.
В свойствах сборки моего проекта я установил флажок «Зарегистрироваться для взаимодействия COM».
В настройках сборки я установил флажок «Сделать эту сборку видимой для COM» и подтвердил наличие атрибута [assembly: ComVisible(true)]
в файле assembly.cs.
Каждый раз, когда я строю этот проект, я получаю сообщение об ошибке «projectname.dll не содержит никаких типов, которые могут быть зарегистрированы для COM-взаимодействия. Кроме того, я не смог успешно создать экземпляр класса 1используя vbscript. Кто-нибудь знает, что это не регистрируется должным образом?
Мой vbscript не может создать объект activex в этой строке ... Set F = CreateObject("64BitCLTest.Class1")
.
Наконец, как мне получить VSзарегистрировать это в 64-битной области реестра вместо 32-битной, чтобы 64-битные процессы могли использовать ее?
-- The Test Class--
namespace _64BitCLTest
{
[Guid("BBAA06EF-CA4C-4fe2-97CD-9B1D85ADA656")]
[ClassInterface(ClassInterfaceType.AutoDual)]
[ComVisible(true)]
[ProgId("64BitCLTest.Class1")]
public class Class1
{
Class1()
{
// do nothing
}
public string Method1()
{
return "This is a return string from method 1";
}
public int Property1
{
get {return 777;}
}
}
}