MSVC (Visual Studio 2005/2008 redistributables)

Started by caaclipper, July 10, 2009, 09:40:54 AM

Previous topic - Next topic

caaclipper

The manifest file is a by-product of the link step performed by Visual Studio.  It's an XML file.
 
This info may help
http://msdn.microsoft.com/en-us/library/ms235542(VS.80).aspx

Randem

Alright, Who creates this manifest file and what is the name of this file or any manifest file that is created for this process. I would like to look into this further. If you could supply some info on this I would appreciate it.
 
(Message edited by randem on July 13, 2009)

caaclipper

I am going to research this last idea.  The manifest file is NOT installed on the target computer.  What I would really like would be for InnoSetup to process the manifest file and auto-magically grab the right redistributables from the source computer's WindowsWinSxS folder.  I think that is what InstallShield does, but I have not confirmed this.

Randem

From what I read about the manifest if you want your application to ignore the Winsxs folder entirely you just need to modify the manifest that you include in your deployment (remove publicKeyToken='1fc8b3b9a1e18e3b'), install those dll's in the application folder and add the dll names to the manifest.

Randem

There are so many MCVCPxx.dll files on my computer it would be a nightmare attempting to wade thru which one to use. However when you are developing the app you should know which one you are using.
 
Try this Run your app thru InnoScript to see which ones it picks up. Perhaps it will give you a clue on which ones to redist.

caaclipper

This article seems to suggest that the version of the redistributable is contingent on the version that was used when my user program was compiled
http://www.itwriting.com/blog/?postid=261  
 
This quote from the article is particularly alarming:
However, it still wasn't clear to me why I was getting the error, especially since the compiler had generated a manifest for me. I ran vcredist_x86.exe to no avail.

Randem

To use the proper redistributable files you should use the download from the MS site. That is the only real way to insure that you get the proper files you need. Other installers may take the files out of the redist exe and put them in their installer but that is not proper and may lead to problems down the road due to the redist files being updated. If they are you can always just swap out the old file for the new one. However with the installer you are stuck with the old ones. Just include the exe in the [Run] section and be done with it.

caaclipper

I want my Inno Setup script to install the C   DLLs that are needed for my project.  These include the MSVCRxx.dll, MSVCPxx.dll, and gdiplus.dll.  The files are in C:\Windows\WinSxS but there is a ringer.
There are several candidates for two former pieces (MSVC* files) - seems that when I updated my version of Windows new directories and new copies of these files were auto-magically created too.  For example, I have this as the source for one of the DLLs:
c:\windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.1433_x-w
w_5cf844d2\MSVCP80.DLL
not to be confused with
c:\windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_
0de06acdww\MSVCP80.DLL (or about 2 other flavors with different directory names).
 
I read something (the info was convoluted) about how the manifest file (output by the Visual Studio Linker) contains info for the redistributables (see http://blog.kalmbachnet.de/?postid=80).
 
I looked at my manifest file.  In my case, I see this line:
       
 
Obviously, some of the info is present, but there is clearly a 'disconnect'
somewhere.
 
Simple question: How can I create my Inno Setup script to include the proper redistributables.  And no, I do not want to be forced to download and run the .EXE from this website:
http://www.microsoft.com/downloads/details.aspx?FamilyId=32BC1BEE-A3F9-4C13-
9C99-220B62A191EE&displaylang=en
 
We both know that is a Mickey Mouse solution.
 
So, please, clue me in?  I used to use InstallShield and it does this for me auto-magically.  I've got to believe that there is something engineered in InnoSetup.
 
So please, lead me down the right path.
I really appreciate the help and direction Thanks CAA