The MsiAssembly Table and MsiAssemblyName Table specify Windows Installer settings for common language runtime assemblies and Win32 assemblies. For information see, Installation of Assemblies to the Global Assembly Cache and Installation of Win32 Assemblies.
The MsiAssemblyName Table specifies the schema for the elements of a strong assembly cache name for a .NET Framework or Win32 assembly. The name is constructed by appending all elements with the same Component_ key. See the following example.
The MsiAssemblyName Table has the following columns.
Key into the Component Table that specifies the Windows Installer component that contains this assembly.
Name of the attribute associated with the value specified in the Value column.
Value associated with the name specified in the Name column.
The information authored into the MsiAssemblyName Table must match the information in the manifest file of the assembly. If the information in the manifest and MsiAssemblyName Table do not match, removal of the application can leave the assembly on the computer.
For Win32 assemblies there must be a row in the MsiAssemblyName Table for each of the following entries in the Name field: type, name, version, language, publicKeyToken and processorArchitecture. The corresponding value for each name can be entered into the Value field. The name-value pairs in MsiAssemblyName Table must match the type, name, version, language, publicKeyToken and processorArchitecture attributes in the manifest of the assembly.
For private common language runtime assemblies (.NET Frameworkversions 1.0 and 1.1), the MsiAssemblyName Table must include a row for each of the following entries in the Name field: Name, Version, and Culture. The corresponding value for each Name can be entered into the Value field.
For global common language runtime assemblies (.NET Framework versions 1.0 and 1.1), the MsiAssemblyName Table must include a row for each of the following entries in the Name field: Name, Version, Culture, and PublicKeyToken. The corresponding value for each Name can be entered into the Value field.
The .NET Framework version 1.1 is the minimum version that can be used to perform an in-place update of a global common language runtime assembly. You can check the MsiNetAssemblySupport property for the version. The MsiAssemblyName Table must also have a FileVersion field because this type of assembly update only changes the FileVersion. For more information, see Updating Assemblies.
For example, the assembly manifest for ComponentA might have an assemblyIdentity section as follows for a Win32 assembly.
<assemblyIdentity type="win32" name="ms-sxstest-simple" version="18.104.22.168" language="en" publicKeyToken="1111111111222222" processorArchitecture="x86"/>
In this case, populate the MsiAssemblyName Table as follows.