NServiceBus is an "Any CPU" framework. It doesn't have 32-bit or 64-bit specific code. This enables transitioning between 32- and 64-bit operating systems. Unfortunately, not all assemblies can be compiled using the default Any CPU architecture. In many, this is related to legacy systems that have 32-bit specific code for platform interoperability with native C libraries, etc.
With the default NServiceBus.Host, the application always loads in 64-bit (x64) mode if running on a 64-bit OS, or in 32-bit (x86) mode for a 32-bit OS. Again, this is typically not a problem.
If assemblies or other libraries containing 32-bit code must be invoked and loaded into a 64-bit process a
BadImageFormatException will be thrown.
There are two specific versions of the NServiceBus Host: the default Any CPU version and
The second one allows users running a 64-bit OS to run a 32-bit NServiceBus host process, allowing execution of 32-bit binaries/code without resorting to workarounds such as
corflags. to patch an assembly, which instruct the .NET Framework to run in 32-bit mode.
Links to the NuGet packages: