Installer cannot find required DLL

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Bill Murray

    #1

    Installer cannot find required DLL

    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_R TL__X86_---.msm), that contain the MSVCP71.DLL and MSVCR71.DLL's, to the System Folder. The [+]MergeModuleProp erties 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
  • Phil Wilson

    #2
    Re: Installer cannot find required DLL

    You're not supposed to retarget the merge modules.


    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


    "Bill Murray" <billmurray@noe mail.com> wrote in message
    news:3214C173-65B8-498B-9AFC-59B0BD736216@mi crosoft.com...[color=blue]
    > I am using VS.NET 2003 and trying to deploy a service program(c++) to a[/color]
    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.[color=blue]
    >
    > All this good except I am UNABLE to Retarget the output of the msm merge[/color]
    modules(VC_USER _CRT71_RTL__X86 _---.msm and VC_USER_STL71_R TL__X86_---.msm),
    that contain the MSVCP71.DLL and MSVCR71.DLL's, to the System Folder. The
    [+]MergeModuleProp erties does not allow for changes which may be the result
    of the merge module design(not sure).[color=blue]
    >
    > In any event, the problem I encounter during the installation process is[/color]
    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."[color=blue]
    >
    > The reason I believe that I need to Retarget the output of these two merge[/color]
    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.[color=blue]
    >
    > Any help is appreciated,
    > Bill Murray[/color]


    Comment

    • Bill Murray

      #3
      Re: Installer cannot find required DLL

      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_R TL__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


      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


      "Bill Murray" <billmurray@noe mail.com> wrote in messag
      news:3214C173-65B8-498B-9AFC-59B0BD736216@mi crosoft.com..[color=blue]
      > I am using VS.NET 2003 and trying to deploy a service program(c++) to[/color]
      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 project[color=blue][color=green]
      >> All this good except I am UNABLE to Retarget the output of the msm merg[/color][/color]
      modules(VC_USER _CRT71_RTL__X86 _---.msm and VC_USER_STL71_R TL__X86_---.msm)
      that contain the MSVCP71.DLL and MSVCR71.DLL's, to the System Folder. Th
      [+]MergeModuleProp erties does not allow for changes which may be the resul
      of the merge module design(not sure)[color=blue][color=green]
      >> In any event, the problem I encounter during the installation process i[/color][/color]
      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.[color=blue][color=green]
      >> The reason I believe that I need to Retarget the output of these two merg[/color][/color]
      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[color=blue][color=green]
      >> Any help is appreciated[/color]
      > Bill Murra[/color]



      Comment

      • Phil Wilson

        #4
        Re: Installer cannot find required DLL

        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:

        Help and assistance in setup development with Windows Installer and InstallShield. Free script code downloads, merge modules, tips and tricks, discussion boards, tools and services.


        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" <billmurray@noe mail.com> wrote in message
        news:5FEAE627-8232-4D23-9D1F-741D48F8F327@mi crosoft.com...[color=blue]
        > Yes I have a DLL that has a custom action and its this dll that has a[/color]
        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_R TL__X86_---.msm).[color=blue]
        >
        > The only thing that I can determine is that the two dll's are NOT getting[/color]
        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.[color=blue]
        >
        > I would much rather use the merge modules and install the dll's in the[/color]
        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.[color=blue]
        >
        > Any other suggestions are welcome,
        > Bill
        >
        > ----- Phil Wilson wrote: -----
        >
        > You're not supposed to retarget the merge modules.
        > http://support.microsoft.com/default...b;en-us;326922
        >
        > Do you have any installer classes or custom actions? That sounds like[/color]
        it[color=blue]
        > might be the problem.
        > --
        > Phil Wilson
        > [MVP Windows Installer]
        > Definitive Guide to Windows Installer
        > http://apress.com/book/bookDisplay.html?bID=280
        >
        > "Bill Murray" <billmurray@noe mail.com> wrote in message
        > news:3214C173-65B8-498B-9AFC-59B0BD736216@mi crosoft.com...[color=green]
        > > I am using VS.NET 2003 and trying to deploy a service program(c++)[/color][/color]
        to a[color=blue]
        > Windows 2000 Server system. I have also written a small DLL[/color]
        (USSsetup.dll)[color=blue]
        > that is used to start/stop the service using a custom action. This[/color]
        dll is[color=blue]
        > apparently dependent on the MSVCP71.DLL and MSVCR71.DLL's as per the
        > Detected Dependencies folder visible in the deployment project.[color=green][color=darkred]
        > >> All this good except I am UNABLE to Retarget the output of the msm[/color][/color][/color]
        merge[color=blue]
        > modules(VC_USER _CRT71_RTL__X86 _---.msm and[/color]
        VC_USER_STL71_R TL__X86_---.msm),[color=blue]
        > that contain the MSVCP71.DLL and MSVCR71.DLL's, to the System Folder.[/color]
        The[color=blue]
        > [+]MergeModuleProp erties does not allow for changes which may be the[/color]
        result[color=blue]
        > of the merge module design(not sure).[color=green][color=darkred]
        > >> In any event, the problem I encounter during the installation[/color][/color][/color]
        process is[color=blue]
        > the following error message during the installation... "There is a[/color]
        problem[color=blue]
        > with this Windows Installer package. A DLL required for this install[/color]
        to[color=blue]
        > complete could not be run. Contact your support personnel or package
        > vendor."[color=green][color=darkred]
        > >> The reason I believe that I need to Retarget the output of these[/color][/color][/color]
        two merge[color=blue]
        > modules to the System Folder is, that when using VS.NET 2002 and two[/color]
        similar[color=blue]
        > merger modules, retargeting the output solved the problem. Now with[/color]
        VS.NET[color=blue]
        > 2003 I cannot seem to find any solution.[color=green][color=darkred]
        > >> Any help is appreciated,[/color]
        > > Bill Murray[/color]
        >
        >
        >[/color]


        Comment

        • Bill Murray

          #5
          Re: Installer cannot find required DLL

          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

          Help and assistance in setup development with Windows Installer and InstallShield. Free script code downloads, merge modules, tips and tricks, discussion boards, tools and services.


          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" <billmurray@noe mail.com> wrote in messag
          news:5FEAE627-8232-4D23-9D1F-741D48F8F327@mi crosoft.com..[color=blue]
          > Yes I have a DLL that has a custom action and its this dll that has[/color]
          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_R TL__X86_---.msm)[color=blue][color=green]
          >> The only thing that I can determine is that the two dll's are NOT gettin[/color][/color]
          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 WORK[color=blue][color=green]
          >> I would much rather use the merge modules and install the dll's in th[/color][/color]
          Application 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[color=blue][color=green]
          >> Any other suggestions are welcome[/color]
          > Bil[color=green]
          >> ----- Phil Wilson wrote: ----
          >> You're not supposed to retarget the merge modules[/color]
          > http://support.microsoft.com/default...kb;en-us;32692[color=green]
          >> Do you have any installer classes or custom actions? That sounds lik[/color][/color]
          i[color=blue]
          > might be the problem
          > --
          > Phil Wilso
          > [MVP Windows Installer
          > Definitive Guide to Windows Installe
          > http://apress.com/book/bookDisplay.html?bID=28[color=green]
          >> "Bill Murray" <billmurray@noe mail.com> wrote in messag[/color]
          > news:3214C173-65B8-498B-9AFC-59B0BD736216@mi crosoft.com..[color=green]
          >> I am using VS.NET 2003 and trying to deploy a service program(c++[/color][/color]
          to[color=blue]
          > Windows 2000 Server system. I have also written a small DL[/color]
          (USSsetup.dll[color=blue]
          > that is used to start/stop the service using a custom action. Thi[/color]
          dll i[color=blue]
          > apparently dependent on the MSVCP71.DLL and MSVCR71.DLL's as per th
          > Detected Dependencies folder visible in the deployment project[color=green][color=darkred]
          >>> All this good except I am UNABLE to Retarget the output of the ms[/color][/color][/color]
          merg[color=blue]
          > modules(VC_USER _CRT71_RTL__X86 _---.msm an[/color]
          VC_USER_STL71_R TL__X86_---.msm)[color=blue]
          > that contain the MSVCP71.DLL and MSVCR71.DLL's, to the System Folder[/color]
          Th[color=blue]
          > [+]MergeModuleProp erties does not allow for changes which may be th[/color]
          resul[color=blue]
          > of the merge module design(not sure)[color=green][color=darkred]
          >>> In any event, the problem I encounter during the installatio[/color][/color][/color]
          process i[color=blue]
          > the following error message during the installation... "There is[/color]
          proble[color=blue]
          > with this Windows Installer package. A DLL required for this instal[/color]
          to[color=blue]
          > complete could not be run. Contact your support personnel or package
          > vendor."[color=green][color=darkred]
          >>> The reason I believe that I need to Retarget the output of these[/color][/color][/color]
          two merge[color=blue]
          > modules to the System Folder is, that when using VS.NET 2002 and two[/color]
          similar[color=blue]
          > merger modules, retargeting the output solved the problem. Now with[/color]
          VS.NET[color=blue]
          > 2003 I cannot seem to find any solution.[color=green][color=darkred]
          >>> Any help is appreciated,[/color]
          >> Bill Murray[color=darkred]
          >>>[/color][/color][/color]

          Comment

          Working...