Перераспределение C# dll для использования VB6

Мы создаем C# dll для использования с VB6 (ComVisible = true, зарегистрируйтесь для COM-взаимодействия). В VB6 на ПК-разработчике все работает нормально.

Мы пытаемся распространять его на другом ПК. Мы знаем, что нам следует восстановить файл tlb с помощью следующей командной строки в Windows x64

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe C:\CLYO\Clyo.Interfaces.dll /tlb:C:\CLYO\Clyo.Interfaces.tlb 

Мы также пытаемся с codebase

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe C:\CLYO\Clyo.Interfaces.dll /tlb:C:\CLYO\Clyo.Interfaces.tlb /codebase

но мы продолжаем получать Error 429 - ActiveX component can't create object

Любая идея?

Примечание. Наш код C# использует разные Guid для каждого класса и интерфейса.

[InterfaceType(ComInterfaceType.InterfaceIsDual)]
[Guid("EC8D67C4-0B8B-4692-9CA4-8657805D9B40")]
public interface IRestoFlash
{
    ...
}

[ClassInterface(ClassInterfaceType.None)]
[Guid("D068F8B5-AAC8-48D2-BEED-4505DBC802D6")]
[ProgId("Clyo_Interfaces.RestoFlash")]
public class RestoFlash:IRestoFlash 
{
    ...
}

1 ответ

Использование пути к Regasm x32 решает проблему...

C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe 
                                 ^^ (without 64) 
Другие вопросы по тегам