Installer cannot find required DLL

G

Guest

I am using VS.NET 2003 and trying to deploy a service program(c++) to a Windows 2000 Server system. I have also written a small DLL (USSsetup.dll) that is used to start/stop the service using a custom action. This dll is apparently dependent on the MSVCP71.DLL and MSVCR71.DLL's as per the Detected Dependencies folder visible in the deployment project

All this good except I am UNABLE to Retarget the output of the msm merge modules(VC_USER_CRT71_RTL__X86_---.msm and VC_USER_STL71_RTL__X86_---.msm), that contain the MSVCP71.DLL and MSVCR71.DLL's, to the System Folder. The [+]MergeModuleProperties does not allow for changes which may be the result of the merge module design(not sure)

In any event, the problem I encounter during the installation process is the following error message during the installation... "There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor.

The reason I believe that I need to Retarget the output of these two merge modules to the System Folder is, that when using VS.NET 2002 and two similar merger modules, retargeting the output solved the problem. Now with VS.NET 2003 I cannot seem to find any solution

Any help is appreciated
Bill Murray
 
P

Phil Wilson

You're not supposed to retarget the merge modules.
http://support.microsoft.com/default.aspx?scid=kb;en-us;326922

Do you have any installer classes or custom actions? That sounds like it
might be the problem.
--
Phil Wilson
[MVP Windows Installer]
Definitive Guide to Windows Installer
http://apress.com/book/bookDisplay.html?bID=280

Bill Murray said:
I am using VS.NET 2003 and trying to deploy a service program(c++) to a
Windows 2000 Server system. I have also written a small DLL (USSsetup.dll)
that is used to start/stop the service using a custom action. This dll is
apparently dependent on the MSVCP71.DLL and MSVCR71.DLL's as per the
Detected Dependencies folder visible in the deployment project.
All this good except I am UNABLE to Retarget the output of the msm merge
modules(VC_USER_CRT71_RTL__X86_---.msm and VC_USER_STL71_RTL__X86_---.msm),
that contain the MSVCP71.DLL and MSVCR71.DLL's, to the System Folder. The
[+]MergeModuleProperties does not allow for changes which may be the result
of the merge module design(not sure).
In any event, the problem I encounter during the installation process is
the following error message during the installation... "There is a problem
with this Windows Installer package. A DLL required for this install to
complete could not be run. Contact your support personnel or package
vendor."
The reason I believe that I need to Retarget the output of these two merge
modules to the System Folder is, that when using VS.NET 2002 and two similar
merger modules, retargeting the output solved the problem. Now with VS.NET
2003 I cannot seem to find any solution.
 
G

Guest

Yes I have a DLL that has a custom action and its this dll that has a dependency on the Msvcr71.dll and Msvcp71.dll's. The knowledge base article you mention was helpful but the merge module provided with VS.NET 2003 do not seem to work (VC_USER_CRT71_RTL__X86_---.msm and VC_USER_STL71_RTL__X86_---.msm)

The only thing that I can determine is that the two dll's are NOT getting installed into the System Folder. I base this on the knowledge base article recommendations and the fact that by excluding the merge modules and directly Adding the two dll's directly into the System Folder DOES WORK

I would much rather use the merge modules and install the dll's in the Application Folder (as per recommendations in the knowledge base article) but I cannot seem to make this work and continue to get the missing dll error message

Any other suggestions are welcome
Bil

----- Phil Wilson wrote: ----

You're not supposed to retarget the merge modules
http://support.microsoft.com/default.aspx?scid=kb;en-us;32692

Do you have any installer classes or custom actions? That sounds like i
might be the problem
--
Phil Wilso
[MVP Windows Installer
Definitive Guide to Windows Installe
http://apress.com/book/bookDisplay.html?bID=28

Bill Murray said:
I am using VS.NET 2003 and trying to deploy a service program(c++) to
Windows 2000 Server system. I have also written a small DLL (USSsetup.dll
that is used to start/stop the service using a custom action. This dll i
apparently dependent on the MSVCP71.DLL and MSVCR71.DLL's as per th
Detected Dependencies folder visible in the deployment projectmodules(VC_USER_CRT71_RTL__X86_---.msm and VC_USER_STL71_RTL__X86_---.msm)
that contain the MSVCP71.DLL and MSVCR71.DLL's, to the System Folder. Th
[+]MergeModuleProperties does not allow for changes which may be the resul
of the merge module design(not sure)the following error message during the installation... "There is a proble
with this Windows Installer package. A DLL required for this install t
complete could not be run. Contact your support personnel or packag
vendor.modules to the System Folder is, that when using VS.NET 2002 and two simila
merger modules, retargeting the output solved the problem. Now with VS.NE
2003 I cannot seem to find any solution
 
P

Phil Wilson

1) I believe there's a bug in those merge modules related to retargetable
folders. If you scroll down here, this may be what you're seeing:

http://www.installsite.org/pages/en/bugs_msi.htm

2) Service installation by running code is a royal pain. What you're seeing
is exactly what happens when code needs to run during the install, whether
it's Service installation or COM registration. It can't find it's
dependencies and it fails (but the dependencies aren't supposed to be in the
system folder!). MSI setups don't really need this at all - the
ServiceInstall and ServiceControl tables in the MSI file can do Service
installs without running code, but VS setups don't use them, they use
Installer classes and you get these issues.

It looks like you'll have to ignore the KB and install the raw DLLs into the
system folder to make this work. I think that should work because the files
are copied there before your custom action is called.
--
Phil Wilson [MVP Windows Installer]
----
Bill Murray said:
Yes I have a DLL that has a custom action and its this dll that has a
dependency on the Msvcr71.dll and Msvcp71.dll's. The knowledge base article
you mention was helpful but the merge module provided with VS.NET 2003 do
not seem to work (VC_USER_CRT71_RTL__X86_---.msm and
VC_USER_STL71_RTL__X86_---.msm).
The only thing that I can determine is that the two dll's are NOT getting
installed into the System Folder. I base this on the knowledge base article
recommendations and the fact that by excluding the merge modules and
directly Adding the two dll's directly into the System Folder DOES WORK.
I would much rather use the merge modules and install the dll's in the
Application Folder (as per recommendations in the knowledge base article)
but I cannot seem to make this work and continue to get the missing dll
error message.
Any other suggestions are welcome,
Bill

----- Phil Wilson wrote: -----

You're not supposed to retarget the merge modules.
http://support.microsoft.com/default.aspx?scid=kb;en-us;326922

Do you have any installer classes or custom actions? That sounds like it
might be the problem.
--
Phil Wilson
[MVP Windows Installer]
Definitive Guide to Windows Installer
http://apress.com/book/bookDisplay.html?bID=280

Bill Murray said:
I am using VS.NET 2003 and trying to deploy a service program(c++)
to a
Windows 2000 Server system. I have also written a small DLL (USSsetup.dll)
that is used to start/stop the service using a custom action. This dll is
apparently dependent on the MSVCP71.DLL and MSVCR71.DLL's as per the
Detected Dependencies folder visible in the deployment project. merge
modules(VC_USER_CRT71_RTL__X86_---.msm and VC_USER_STL71_RTL__X86_---.msm),
that contain the MSVCP71.DLL and MSVCR71.DLL's, to the System Folder. The
[+]MergeModuleProperties does not allow for changes which may be the result
of the merge module design(not sure). process is
the following error message during the installation... "There is a problem
with this Windows Installer package. A DLL required for this install to
complete could not be run. Contact your support personnel or package
vendor." two merge
modules to the System Folder is, that when using VS.NET 2002 and two similar
merger modules, retargeting the output solved the problem. Now with VS.NET
2003 I cannot seem to find any solution.
Bill Murray
 
G

Guest

Thanks Phil you were very helpful. Its appreciated

I had already done as you suggested below and installed the dll's directl
in the system folder and all my preliminary tests are working

Cheers
Bil

----- Phil Wilson wrote: ----

1) I believe there's a bug in those merge modules related to retargetabl
folders. If you scroll down here, this may be what you're seeing

http://www.installsite.org/pages/en/bugs_msi.ht

2) Service installation by running code is a royal pain. What you're seein
is exactly what happens when code needs to run during the install, whethe
it's Service installation or COM registration. It can't find it'
dependencies and it fails (but the dependencies aren't supposed to be in th
system folder!). MSI setups don't really need this at all - th
ServiceInstall and ServiceControl tables in the MSI file can do Servic
installs without running code, but VS setups don't use them, they us
Installer classes and you get these issues

It looks like you'll have to ignore the KB and install the raw DLLs into th
system folder to make this work. I think that should work because the file
are copied there before your custom action is called
--
Phil Wilson [MVP Windows Installer
---
Bill Murray said:
Yes I have a DLL that has a custom action and its this dll that has
dependency on the Msvcr71.dll and Msvcp71.dll's. The knowledge base articl
you mention was helpful but the merge module provided with VS.NET 2003 d
not seem to work (VC_USER_CRT71_RTL__X86_---.msm an
VC_USER_STL71_RTL__X86_---.msm)installed into the System Folder. I base this on the knowledge base articl
recommendations and the fact that by excluding the merge modules an
directly Adding the two dll's directly into the System Folder DOES WORKApplication Folder (as per recommendations in the knowledge base article
but I cannot seem to make this work and continue to get the missing dl
error message
Any other suggestions are welcome Bil
----- Phil Wilson wrote: ----
You're not supposed to retarget the merge modules http://support.microsoft.com/default.aspx?scid=kb;en-us;32692
Do you have any installer classes or custom actions? That sounds lik
i
might be the problem
--
Phil Wilso
[MVP Windows Installer
Definitive Guide to Windows Installe
http://apress.com/book/bookDisplay.html?bID=28
I am using VS.NET 2003 and trying to deploy a service program(c++
to
Windows 2000 Server system. I have also written a small DL (USSsetup.dll
that is used to start/stop the service using a custom action. Thi dll i
apparently dependent on the MSVCP71.DLL and MSVCR71.DLL's as per th
Detected Dependencies folder visible in the deployment project merg
modules(VC_USER_CRT71_RTL__X86_---.msm an VC_USER_STL71_RTL__X86_---.msm)
that contain the MSVCP71.DLL and MSVCR71.DLL's, to the System Folder Th
[+]MergeModuleProperties does not allow for changes which may be th resul
of the merge module design(not sure) process i
the following error message during the installation... "There is proble
with this Windows Installer package. A DLL required for this instal to
complete could not be run. Contact your support personnel or package
vendor." two merge
modules to the System Folder is, that when using VS.NET 2002 and two similar
merger modules, retargeting the output solved the problem. Now with VS.NET
2003 I cannot seem to find any solution.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top