visual studio .net setup:
This is nothing to do with VS.NET and everything to do with the way COM
registration works. All these tools calls DllRegisterServer in the DLL and
spy on the created registry entries. For your DLL to load, it requires to
load its dependent DLLs, your Y.DLL. You wouldn't expect an exe to run with
required DLLs missing, similarly a DLL can't run if it can't also load its
dependent DLLs.
Having said that, all you need to do is arrange for X.DLL to be able to find
Y.DLL when being registered. You don't need to do any of this regcap/regsvr
stuff in a VS setup project - just set the Register property on the DLL to
vsdr-Register, and the build of the setup will load the registration data
into the resulting MSI file. Note that this still requires your DLL to load
together with its dependent Y.DLL. The resulting MSI file writes the
registry entries and copies the DLL to the system without needing to load it
during the installation. MSI will also do the right thing if you do a
per-user install. Other registration schemes register for thew entire system
even if you're doing a per-user install.
--
Phil Wilson
[MVP Windows Installer]
[quoted text, click to view] "Aleksey Tkachenko" <no_spam@no.ru> wrote in message
news:eVqgA5FKEHA.3472@TK2MSFTNGP09.phx.gbl...
>
> Hi All
>
> X.dll is COM object linked to Y.dll, which is not COM object.
> X.dll was successfully built, registered while build by regsvr32,
> worked and added to deployment project.
> Y.dll was added to deployment project too.
>
> But while building deployment project marvelous regcap.exe
> cannot load X.dll and create reg file for it
> (possibly because quite strange current paths it uses)
> producing the warning mentioned in subj.
>
> If I put the Y.dll directly near the remarkable regcap.exe in outstanding
>
> E:\Program Files\Microsoft Visual Studio .NET
2003\Common7\Tools\Deployment
>
> directory then this rubbish works perfectly well.
>
> So what obvious option I forgot to tune in our blameless VS?
>
> Aleksey.
>