Add side-by-side (SXS) assemblies to an EMP compatibility package
A Windows side-by-side assembly is described by manifests
Typically, a side-by-side assembly is a single DLL. For example, the Microsoft COMCTL32 assembly is a single DLL with a manifest, whereas the Microsoft Visual C++ development system run-time libraries assembly contains multiple files.
Manifests contain metadata
Every side-by-side assembly has a unique identity. One of the attributes of the assembly
identity is its version. For more information, see Assembly
Versions
The EMP Compatibility Package Builder does not configure support for side-by-side
assemblies. If your application uses side-by-side assemblies that are distributed with
installers, you must first attempt to install them natively on the target operating system.
If this is successful, you can script the installation of these assemblies into package
deployment using the DeploymentScript.xml
. For more information see Managing EMP custom configurations. If
native installation is not possible or does not address the issue, you can add the
assemblies to the package as private assemblies.
The following error message will appear in the Windows Event Viewer, from which you can determine what assemblies you need, along with the version:
Activation context generation failed for "DemoApplication.exe". Dependent AssemblyTowersWatson.Components.Licensing.ComSRM,publicKeyToken="97c62a3c455f5e0d",type="win32",version="2.0.5.48761"could not be found. Please use sxstrace.exe for detailed diagnosis.
Add side-by-side assemblies to an EMP package
-
Add the missing DLLs associated with the run-times to the same folder as the executable being run. Alternatively, use Process Monitor to monitor the application process along with
csrss.exe
to determine where the application is looking for these DLLs. -
Locate the DLLs (usually located in
C:\Windows\Assembly
orC:\Windows\WinSXS
folders).