I encountered an issue with an application of ours that refused to launch on Windows 2008 R2 SP2 but worked on Windows 2003 R2. I did a procmon.exe trace and noticed some discrepancies in the trace results:
HKLM\SOFTWARE\Microsoft\Fusion\NativeImagesIndex\v2.0.50727_64
^^ 2008 R2 SP2 (non-working application launches)
HKLM\SOFTWARE\Microsoft\Fusion\NativeImagesIndex\v2.0.50727_32
^^ 2003 R2 (working application launches)
So, my application was defaulting to the .NetFramework64 architecture and no launching. To correct this I was able to run this command:
REG_DWORD Enable64bit
DATA 0x0 (for SetWow) 0x1 (for Set64)
c:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64\CorFlags.exe MyApplication.exe /32bit+
:::::::::::::::::::::::EDIT::::::::::::::::::::::::::::::
It appears the following registry key is for status only:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
REG_DWORD Enable64bit
DATA 0x0 (for SetWow) 0x1 (for Set64)
It does not actually do anything configuration-wise. Changing this key does not manipulate the ability to .NetFramework to use 32bit or 64bit.
