Перераспределение 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)