Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. Innosetup and side-by-side assemblies

Innosetup and side-by-side assemblies

Scheduled Pinned Locked Moved C / C++ / MFC
visual-studioquestionannouncementcsharplearning
5 Posts 3 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    dontknowitall
    wrote on last edited by
    #1

    I recently discovered that Visual Studio 2008 puts its runtime libraries in the side-by-side assemblies directory. A lot of my projects have dependencies on the runtime DLLs. According to what I've read about side-by-side, it "requires" the use of Windows Installer to deploy them. However, I've invested significant time in learning and using Inno Setup and don't really like the Windows Installer for various reasons (some personal, some professional). I guess my question is: How does redistribution of side-by-side assemblies work (behind the scenes)? I should point out that my projects are being imported from older versions of VS and I'm wanting to fully update them to the latest version of VS. Side-by-side is new to me.

    K P 2 Replies Last reply
    0
    • D dontknowitall

      I recently discovered that Visual Studio 2008 puts its runtime libraries in the side-by-side assemblies directory. A lot of my projects have dependencies on the runtime DLLs. According to what I've read about side-by-side, it "requires" the use of Windows Installer to deploy them. However, I've invested significant time in learning and using Inno Setup and don't really like the Windows Installer for various reasons (some personal, some professional). I guess my question is: How does redistribution of side-by-side assemblies work (behind the scenes)? I should point out that my projects are being imported from older versions of VS and I'm wanting to fully update them to the latest version of VS. Side-by-side is new to me.

      K Offline
      K Offline
      krmed
      wrote on last edited by
      #2

      I don't use innosetup, so not sure how you implement this, but it's possible to include the side-by-side assemblies in your distribution. If you have your application in a directory c:\myapps and your exectuable "myapp.exe" is in this folder, you can put the side-by-side assemblies in that folder also. You'll find the correct distributables for the side-by-side assemblies in the \Program Files\Microsoft Visual Studio 8\VC\redist folder - there are several subfolders there (e.g. x86, ia64, amd64 and so on). Inside the x86 folder, you'll find a folder named Microsoft.VC80.MFC and another folder called Microsoft.VC80.CRT. Copy those complete folders to your c:\myapps directory. When done, your c:\myapps directory would contain

      myapp.exe - executable you wrote
      Microsoft.VC80.CRT - folder with the side-by-side C Runtime for VC80
      Microsoft.VC80.MFC - folder with the side-by-side MFC 80
      

      That should allow your app to run. Hope that helps.

      Karl - WK5M PP-ASEL-IA (N43CS) PGP Key: 0xDB02E193 PGP Key Fingerprint: 8F06 5A2E 2735 892B 821C 871A 0411 94EA DB02 E193

      D 1 Reply Last reply
      0
      • K krmed

        I don't use innosetup, so not sure how you implement this, but it's possible to include the side-by-side assemblies in your distribution. If you have your application in a directory c:\myapps and your exectuable "myapp.exe" is in this folder, you can put the side-by-side assemblies in that folder also. You'll find the correct distributables for the side-by-side assemblies in the \Program Files\Microsoft Visual Studio 8\VC\redist folder - there are several subfolders there (e.g. x86, ia64, amd64 and so on). Inside the x86 folder, you'll find a folder named Microsoft.VC80.MFC and another folder called Microsoft.VC80.CRT. Copy those complete folders to your c:\myapps directory. When done, your c:\myapps directory would contain

        myapp.exe - executable you wrote
        Microsoft.VC80.CRT - folder with the side-by-side C Runtime for VC80
        Microsoft.VC80.MFC - folder with the side-by-side MFC 80
        

        That should allow your app to run. Hope that helps.

        Karl - WK5M PP-ASEL-IA (N43CS) PGP Key: 0xDB02E193 PGP Key Fingerprint: 8F06 5A2E 2735 892B 821C 871A 0411 94EA DB02 E193

        D Offline
        D Offline
        dontknowitall
        wrote on last edited by
        #3

        VC8 is Visual Studio 2005 (not what I have). VC9 is Visual Studio 2008 (what I have). And MFC has some weird stuff involving language separated DLLs (MFC directory AND a MFCLOC directory). What do I do for those? How do I get my old VC++ 2003 projects to start using side-by-side? Right now the compiler is looking for the 7.1 version of the runtimes (msvcr71.lib), not finding it, and therefore the linker is failing. Remember, these are imported solutions and projects from VC++ 2003.

        K 1 Reply Last reply
        0
        • D dontknowitall

          I recently discovered that Visual Studio 2008 puts its runtime libraries in the side-by-side assemblies directory. A lot of my projects have dependencies on the runtime DLLs. According to what I've read about side-by-side, it "requires" the use of Windows Installer to deploy them. However, I've invested significant time in learning and using Inno Setup and don't really like the Windows Installer for various reasons (some personal, some professional). I guess my question is: How does redistribution of side-by-side assemblies work (behind the scenes)? I should point out that my projects are being imported from older versions of VS and I'm wanting to fully update them to the latest version of VS. Side-by-side is new to me.

          P Offline
          P Offline
          PJ Arends
          wrote on last edited by
          #4

          With VS2005 it is possible to include the file vcredist_x86.exe within your installer. Have Inno run and then delete that file at setup and the all the necessary files will installed on the users machine in the proper location. VS2008 should have the same method.

          1 Reply Last reply
          0
          • D dontknowitall

            VC8 is Visual Studio 2005 (not what I have). VC9 is Visual Studio 2008 (what I have). And MFC has some weird stuff involving language separated DLLs (MFC directory AND a MFCLOC directory). What do I do for those? How do I get my old VC++ 2003 projects to start using side-by-side? Right now the compiler is looking for the 7.1 version of the runtimes (msvcr71.lib), not finding it, and therefore the linker is failing. Remember, these are imported solutions and projects from VC++ 2003.

            K Offline
            K Offline
            krmed
            wrote on last edited by
            #5

            VS2005 also has the MFCLOC and such. I believe the same basic instructions I gave you will work with VS2008 to use the side-by-side assemblies. If the compiler is looking for the 7.1 version, that's a completely different problem from the installation of the assemblies.

            Karl - WK5M PP-ASEL-IA (N43CS) PGP Key: 0xDB02E193 PGP Key Fingerprint: 8F06 5A2E 2735 892B 821C 871A 0411 94EA DB02 E193

            1 Reply Last reply
            0
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            • Login

            • Don't have an account? Register

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • World
            • Users
            • Groups