Re: DLL over the network...
It is registered on the local PC - unless you are doing it in Terminal Server, in which case it will be on whichever machine you are connected to.
Re: DLL over the network...
I would have to disagree based on results, but I believe you've got lots of experience doing this so perhaps I did something different that's why I got a different result.
I executed that command, and presto! The DLL was registered in \\AlphaServer\ terminal server and not on the local pc, so everything crashed when they run my application. cheers!
Re: DLL over the network...
Did you run it in Terminal Server (when connected to AlphaServer), or did you run it directly on the PC?
If you did it in Terminal Server, it would register on AlphaServer. If you did it directly on the local PC, it would register on the PC.
However, depending on the circumstances and dependencies, registering might not be enough. For example: Does the PC have the required runtimes? Does it have the dependencies of the DLL? (and are they registered?)
It would also help if you give more details than "everything crashed", as there is likely to be some important info for us.
Re: DLL over the network...
Hi, to answer your question, I ran it directly from the pc. Below is the command:
c:\windows\system32\regsvr32.exe \\AlphaServer\testfolder\VBcom.DLL
as you can see, the path of the file is "\\AlphaServer\..." which is the terminal server. The way I understand it, the path will be used by regsvr32.exe to determine where it should place the registry entry...Is this right?
I mentioned "everything crashed..." as the local pc where the app is residing is using the DLL, but since it cannot find the new version that i tried to register (which was registered incorrectly in the AlphaServer terminal server) it crashed.
thanks
Re: DLL over the network...
It would be useful, as always, to know the details of the error(s) you are getting (eg: error number & description, and when it happens), as errors generally give us a clear indication of what the problems are.
\\AlphaServer is not "the terminal server", it is just a server - Terminal Server is a program that you use to log in to a different computer, so using that phrase is causing a confusion and doubt. When using Terminal Server you are not actually working with the computer you are at, but the one that you have connected to via Terminal Server.
The path you provide to regsvr32 specifies which file to register, it does not affect the registry location etc - the file will be registered on the computer that you are running regsvr32 on.
Re: DLL over the network...
Thanks, but to clarify things, so if \\AlphaServer is "just a server", we have a terminal server which is AlphaServer also. I'm registering the DLL using my local pc, with the command mentioned, and when I checked the registry, the entry cannot be found, but when I login to the "Terminal Server" that is AlphaServer and check its registry entry, the DLL is registered there. I hope this is less confusing. cheers
Re: DLL over the network...
What regsvr32 does is load the DLL and call the DLLRegisterServer entrypoint, it isn't magical. This routine is compiled into the DLL, and VB creates a generic one based upon the Project Properties in effect, Classes defined, etc.
DLLs should be installed locally. You don't want to register one located on a remote file share.
When you run regsvr32 locally the DLL's DllRegisterServer routine has no way to reach over to a file server's registry to make entries there.
Self-Registration