I have an ASP Classic application which references some Visual Basic 6.0 COM objects. One of these Visual Basic 6.0 COM objects reference another third-party DLL.
The third-party DLL needs to be registered on a Windows Server 2008 R2 x64 machine.
I have found scripts to register the DLL in the GAC without GACUTIL using PowerShell (ref: http://weblogs.asp.net/adweigert/archive/2008/10/31/powershell-install-gac-gacutil-for-powershell.aspx).
Now I need to register the assembly. I have used both the GACUTIL and the RegAsm on my local development machine (x86) without hitch. But when I try to get the DLL on the testing server I have problems.
First issue: No GACUTIL.
That is, there is no GACUTIL on the server, which I got around using the script noted above.
Second issue: RegAsm cannot find assembly.
The RegAsm under the 32-bit .NET Framework does not find the DLL. Error reported:
RegAsm : error RA0000 : Unable to locate input assembly 'C:\Windows\System32\xxxxx.dll' or one of its dependencies.
So I used the 64-bit variant and that worked.
But when I run my application I get errors in my event log:
ActiveX component can't create object.
Generally speaking that happens because it cannot find the object to create, which means that the DLL hosting the object is not registered correctly.
So what I am trying to do now is find out if there is an alternate method to RegAsm using PowerShell.
Is that possible and what would the script be to get it right?