none
Run-time error 429 when calling a .NET dll Excel VBA RRS feed

  • Question

  • I create very simple C# DLL and register using regasm /tlb codebase option  and next I call form Excel. All work fine  when I register and test my DLL on English language virtual machine. When I register and call DLL in my local machine  which is non-English language, Excel put error Run-time error '429' ActiveX component can't create object. Any idea?

    Monday, January 28, 2013 11:24 AM

Answers

  • So, I find solution. It is my fault. I register with 32 bit regasm.exe and use Office 64bit. When I register DLL with 64bit regasm.exe and use in 64bit Office then DLL work correct. It is possibility to create installer in instalshild to operate 64/32 bit Office? I must install DLL 64 bit if Office is 64bit and install 32 bit id Office is 32bit or install universal DLL for 64/32 bit Office.

    Monday, January 28, 2013 3:40 PM
  • sure, 2 options:

    1. create 2 spearate installers each for proper bitness and your dll compiled to proper bitness, installshield should be smart enough to detect which regasm to call (you can verify this by looking at generated .reg file inside \obj folder when bulding installshiled project)

    2. create single installer and custom action for it that will read from registry bitness of office and invoke regasm from proper folder.

    Monday, January 28, 2013 3:51 PM

All replies

  • besides english locale is everything the same? is bitness of your OS-es the same?
    Monday, January 28, 2013 11:54 AM
  • My local machines have system and Office in same language. Change language on local machine did not bring correct problem. Run DLL on English environment is support what I find in another forum, but I need run DLL in my local system in my local language.

    Monday, January 28, 2013 12:18 PM
  • I was asking for bitness of your OS-es and office installations by the way.

    Monday, January 28, 2013 1:37 PM
  • OK, I test on Windows 7 64bit, Windows Server 8 R2 and Office 2010 32 bit.

    PS. On Windows 8 64bit and Office 2013 64bit with language pack it work correct.



    • Edited by lukasz_k Monday, January 28, 2013 2:00 PM
    Monday, January 28, 2013 1:59 PM
  • again, this time with indicator where it works and where it does not work, becase 'i test' does not imply anything about result.
    Monday, January 28, 2013 2:21 PM
  • Sorry, now I test more and it work on 32bit office and
    don`t work on 64 bit Office. All test run on 64 bit systems. <o:p></o:p>


    Monday, January 28, 2013 3:12 PM
  • so, just to be sure: it work on 32 bit office but does not work on 64 bit one?

    how do you compile your c# dll? anycpu or specific bitness?

    how do you register your dll? please provide FULL and EXACT paths of your registration.

    Monday, January 28, 2013 3:26 PM
  • So, I find solution. It is my fault. I register with 32 bit regasm.exe and use Office 64bit. When I register DLL with 64bit regasm.exe and use in 64bit Office then DLL work correct. It is possibility to create installer in instalshild to operate 64/32 bit Office? I must install DLL 64 bit if Office is 64bit and install 32 bit id Office is 32bit or install universal DLL for 64/32 bit Office.

    Monday, January 28, 2013 3:40 PM
  • sure, 2 options:

    1. create 2 spearate installers each for proper bitness and your dll compiled to proper bitness, installshield should be smart enough to detect which regasm to call (you can verify this by looking at generated .reg file inside \obj folder when bulding installshiled project)

    2. create single installer and custom action for it that will read from registry bitness of office and invoke regasm from proper folder.

    Monday, January 28, 2013 3:51 PM