Я предполагаю, что поскольку вы использовали манифест фразы, вы собираете эту DLL-библиотеку с использованием платформы разработки .net VS2003, VS2005 или VS2008 по сравнению с VS 6.0
.
Эта ссылка предоставляет подробный набор шагов, необходимых для регистрации сборки .NET для использования в качестве компонента COM.
Единственное, о чем я не упоминаю в статье, - это создание собственных GUID. Используйте пункт «Создать GUID» в меню «Инструменты», затем вставьте их над классами, интерфейсами и перечислениями, которые вы хотите использовать для COM.
[Guid("3838ADC1-E901-4003-BD0C-A889A7CF25A1")]
public interface IMyCOMClass {
void MyMethod();
}
[Guid("476BDEB6-B933-4ed5-8B86-7D9330A59356"),
ClassInterface(ClassInterfaceType.None)]
public class MyCOMClass : IMyCOMClass {
public void MyMethod() {
//implementation here
}
}
Второе, что я делаю, это использую отдельный интерфейс для части COM, которая реализуется классом. Причина, по которой это делается, связана с разрушаемостью COM при изменении интерфейса, думаю, DLL Hell.
Надеюсь, это поможет,
Билл.