While working on a customer case involving a Windows installer based package, we came across an interesting issue that was preventing the installation of the MSI package on a particular computer.
The setup failed with the following error message that we captured from a verbose log.
Error message: Assembly Error: The assembly is built by a runtime newer than the currently loaded runtime, and cannot be loaded.
MSI (s) (B4:98) [00:42:12:401]: Executing op: SetTargetFolder(Folder=C:\Program Files (x86)\)
MSI (s) (B4:98) [00:42:12:401]: Executing op: SetSourceFolder(Folder=1\ProgramF\boziguka\|Program Files\Global Assembly Cache\)
MSI (s) (B4:98) [00:42:12:401]: Executing op: ChangeMedia(,MediaPrompt=Please insert the disk: [ProductName] ,MediaCabinet=Cabs.m4,BytesPerTick=32768,CopierType=2,ModuleFileName=C:\Windows\Installer\30895a.msi,,,,,IsFirstPhysicalMedia=1)
MSI (s) (B4:98) [00:42:12:401]: Executing op: AssemblyCopy(SourceName=nobzwco5.dll|CustomerPrivate.dll,SourceCabKey=CustomerPrivate.dll.A15E27FB_AF96_4B01_A086_134C0E9A760B,
MSI (s) (B4:98) [00:42:12:401]: Source for file 'CustomerPrivate.dll.A15E27FB_AF96_4B01_A086_134C0E9A760B' is compressed
InstallFiles: File: CustomerPrivate.dll, Directory: , Size: 108544
MSI (s) (B4:98) [00:42:12:401]: Note: 1: 2360
MSI (s) (B4:58) [00:42:12:651]: Assembly Error:The assembly is built by a runtime newer than the currently loaded runtime, and cannot be loaded.
MSI (s) (B4:58) [00:42:12:667]: Note: 1: 1935 2: 3: 0x8013101B 4: IStream 5: Commit 6:
MSI (s) (B4:98) [00:42:12:667]: Note: 1: 1304 2: CustomerPrivate.dll
DEBUG: Error 2835: The control ErrorIcon was not found on dialog ErrorDialog
Internal Error 2835. ErrorIcon, ErrorDialog
Error 1304. Error writing to file: CustomerPrivate.dll. Verify that you have access to that directory.
On further investigation, we found that we were getting the error message on a machine that only had .NET Framework 3.5 SP1.
Later, we also found that the component that is installing the DLL file had the following condition
MsiNetAssemblySupport > "2.0"
This means, the application needed a .Net runtime version greater than 2.0 to be installed prior to running this setup package.
Resolution: Installing .NET Framework 4.0 will fix this issue.
Content By : Keshav Jain