4/16/2015

SideBySide configuration ERROR : MS Visual C++

# Introduction:  Sometimes when you try to run your application on windows XP / VISTA (old systems) or Windows 7 (where Visual C++ shared libraries is not installed, )
your application won't run, instead it gives you an ERROR, like,
configuration error
SideBySide configuration error
Activation context generation failed




# This error is because of missing Visual C++ Shraed runtime libraries. So all you can do is install it.
But sometimes you do not have Admin privileges to install it,
Ok, this is where concept of local manifest comes in play, Now we will write a local manifest file for
required Visual C++ shared libraries.


# Situation First : Running Python Interpreter
Python Interpreter require Microsoft.VC90.CRT Shraed libraries, So we have to write Microsoft.VC90.CRT.manifest file,
this is basically a XML file and you can write this file using Notepad, Nodepad++ ( If you have installed. )



=> Open notepad and write this XML code and save it as Microsoft.VC90.CRT.manifest
into the same directory where you have your application, in this case python.exe
=> Now you should have these three DLLs, listed in manifest file,
msvcm90.dll , msvcp90.dll , msvcr90.dll
copy and paste these three DLLs into application folder, in this case %PYTHONHOME%

## Microsoft.VC90.CRT.manifest
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) Microsoft Corporation.  All rights reserved. -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <noInheritable/>
    <assemblyIdentity
        type="win32"
        name="Microsoft.VC90.CRT"
        version="9.0.21022.8"
        processorArchitecture="x86"
        publicKeyToken="1fc8b3b9a1e18e3b"
    />
<file name="msvcm90.dll"/>
<file name="msvcp90.dll"/>
<file name="msvcr90.dll"/>
</assembly>


# Situation Second : Running WinHTtrack 
winhttrack.exe require Microsoft.VC90.MFC shared libraries,



=> Open notepad and write this XML code into it, and save it as Microsoft.VC90.MFC.manifest file,
into the same directory, where you have winhttrack.exe executable file.
=> Now copy these DLLs into Application root directory, (as listed in manifest file)
mfc90.dll , mfc90u.dll, mfcm90.dll , mfcm90u.dll

## Microsoft.VC90.MFC.manifest
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) Microsoft Corporation.  All rights reserved. -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <noInheritable/>
    <assemblyIdentity
        type="win32"
        name="Microsoft.VC90.MFC"
        version="9.0.21022.8"
        processorArchitecture="x86"
        publicKeyToken="1fc8b3b9a1e18e3b"
    />
<file name="mfc90.dll"/>
<file name="mfc90u.dll"/>
<file name="mfcm90.dll"/>
<file name="mfcm90u.dll"/>
</assembly>


# List of Visual C++ Shraed libraries and their dependent DLL files.
# Active Template Library
Microsoft.VC90.ATL
atl90.dll

# C Runtime Library, release DLLs
Microsoft.VC90.CRT
msvcr90.dll
msvcp90.dll
msvcm90.dll

# C Runtime Library, debug DLLs
Microsoft.VC90.DebugCRT
msvcr90d.dll
msvcp90d.dll
msvcm90d.dll

# Microsoft Foundation Classes, release DLLs
Microsoft.VC90.MFC
mfc90.dll
mfcm90.dll
mfc90u.dll
mfcm90u.dll

# Microsoft Foundation Classes, debug DLLs
Microsoft.VC90.DebugMFC
mfc90d.dll
mfcm90d.dll
mfc90ud.dll
mfcm90ud.dll

# Microsoft Foundation Classes, localized resources
Microsoft.VC90.MFCLOC
mfc90chs.dll
mfc90deu.dll
mfc90esp.dll
mfc90ita.dll
mfc90kor.dll
mfc90cht.dll
mfc90enu.dll
mfc90fra.dll
mfc90jpn.dll

# OpenMP Library, release DLLs
Microsoft.VC90.OpenMP
vcomp.dll

# OpenMP Library, debug DLLs
Microsoft.VC90.DebugOpenMP
vcompd.dll


# Development model of Visual C++ :=>  Concepts of Isolated Applications and Side-by-side Assemblies
In Visual C++ 2005, the ATL, MFC, Standard C++, and CRT libraries support the new deployment model available on Windows XP,  Windows Server 2003, and Windows Vista. The DLLs corresponding to all Visual C++ libraries have been grouped into several shared side-by-side assemblies and are installed into the native assembly cache, also called the WinSxS folder, under the operating system root directory.

# If you want to know more, look for it,
https://msdn.microsoft.com/en-us/library/ms235624(v=vs.90).aspx


No comments :