I have an open source C# app with a WiX installer, relying on .NET 4.5.
- Windows7 64bit (with .NET 4.5 installed) users say it works fine.
- Windows7 32bit (with .NET 4.5 installed) users say it crashes.
So I installed Windows7 32bit (in VirtualBox), installed the app, and indeed it crashes:

Problem Signature 09 is System.IO.DirectoryNotFound, and Windows’ Event Viewer mentions C:\Windows\system32\KERNELBASE.dll, if that can give a clue.
Then I decided to install Visual C# 2010 Express on the same machine, and…
SURPRISE: The app does not crash anymore (neither the installed app nor when executed via Visual C#)
How to avoid this crash?
I can’t ask all users to install Visual C#…
I’d call this more of a hunch than an answer, but it seems to have helped. I’ll just go through my though process.
Based on the fact that the app works on 64-bit and not 32-bit I am immediately thinking
BadImageFormatExceptionor an incorrectly coded path looking inProgram Files (x86)(or something similar with 64-bit/32-bit registry values). But then we learn everything is fine with VS installed, which is odd. So, I start looking at the proj files and references. Almost all of it is managed code/MSIL so it doesn’t seem like it’s anything that could be related to a 32-bit/64-bit issue. In one of the reference projects (SparkleLib.Cmis), however, I see a reference toSystem.Data.SQLitewhich I know has unmanaged components. I googled the docs. They mention this:So I’m pretty sure at this point, its an improperly deployed
System.Data.SQLitethat happened to work on the dev box because VS is already there. OP has confirmed that this is indeed the issue.