Installing applications using Microsoft runtime .dll's

From Yggenyk
Revision as of 17:23, 10 March 2012 by WikiSysop (talk | contribs)
Jump to navigation Jump to search

Side By Side error

If you build an application that uses native .dll's that uses Microsoft Visual C++ runtime .dll's you need to install these runtime .dll's together with your application, or you will get errors like these:


SideBySide error dialog.png


In the event log, there is an Event 33, SideBySide error.

Activation context generation failed for "C:\Release\NativeManifestTest.exe". Dependent Assembly Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.4053" could not be found. Please use sxstrace.exe for detailed diagnosis.

If you start the application from Microsoft Visual Studio, you can get the error:

Error while trying to run project: Unable to start program 'C:\dev\mickey\NativeManifestTest\NativeManifestTest\bin\Release\NativeManifestTest.exe'.
This application has failed to start because the application configuration is incorrect. Review the manifest file for possible errors. Reinstalling the application may fix this problem. For more details, please see the application event log.

WinSxs Tracing Utility

SxsTrace.exe is an application that traces why an executeable can't find it's dependencies. Usage: SxsTrace [Options]
Options:

Trace -logfile:FileName [-nostop]
Enabling tracing for sxs.
Tracing log is saved to FileName.
If -nostop is specified, will not prompt to stop tracing.
Parse -logfile:FileName -outfile:ParsedFile [-filter:AppName]
Translate the raw trace file into a human readable format and save the result to ParsedFile.
Use -filter option to filter the output.
Stoptrace
Stop the trace if it is not stopped before.

Example: SxsTrace Trace -logfile:SxsTrace.etl

SxsTrace Parse -logfile:SxsTrace.etl -outfile:SxsTrace.txt

Assembly Searching Sequence

Ways to distribute the dependencies

Installing copy in local folder

Create a sub folder called Microsoft.VC80.CRT in same folder where the .exe filel is located. Place following 4 files in the Microsoft.VC80.CRT folder

  1. Microsoft.VC80.CRT.manifest
  2. msvcm80.dll
  3. msvcp80.dll
  4. msvcr80.dll

The files can be downloaded here:

Embed manifest, and add merge module to installation

Installing runtime modules using standalone installers

<google>ENGELSK</google>

id=siteTree