Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Register a network housed DLL on client machines


1 reply to this topic

RomanD

RomanD
  • Full Members
  • 3 posts

Posted 28 July 2009 - 19:55

Hi,

I am using VS2008. The problem is: I am unable to use ALLUSERS option when registering a network housed (think: file server) DLL locally on the client machines. I am able to do this when I do not use ALLUSERS. The DLL is a COM DLL that I have tried registering using the VS built-in vsdrfCOM, and/or using Custom Actions:

1. Calling command line regsvr32.exe
2. Using the WIN32 API

When I use the built registration method I get no error but the DLL does not register.
When I use the Custom Actions I get Win32 Error 5 and the DLL does not register.

Thanks in advance,

Roman

VBScab

VBScab
  • Full Members
  • 436 posts

Posted 28 July 2009 - 20:39

Error 5 is 'Access Denied' so presumably you set the CA to run in user context, either explicitly by adding the relevant value to the CA's attribute when running in the Execute Deferred sequence or by sequencing it after InstallFinalize in the Execute Immediate sequence. Users generally have insufficient permissions to create the required registry keys and values.

The way to correctly register DLLs via MSIs is by using a combination of the Registry, Class and TypeLib tables, the so-called 'Advertising' tables. The two major MSI authoring tools, Wise and InstallShield, make this easy. If you don't have either of these, you're on a practically vertical learning curve, I'm afraid. Apart from bypassing any permissioning issues (above), doing it via the tables also avoids any potential failure due to missing dependencies, another pitfall associated with using RegSvr32 (or any similar tool).
- Don't know why 'x' happened? Want to know why 'y' happened? ProcMon will tell you.
- Try using http://www.google.com before posting.
- I answer questions only via forums. Please appreciate the time I give here and don't send me personal emails.