I came across a situation in which I would like to set the Prefer 32-bit to true. But in Visual Studio 2012, it is showing as disabled. And no matter what I do
Assuming you've got an executable project, then if you change your target platform to .NET 4.5, it should become enabled.
It's a .NET 4.5-only thing, and it's only enabled for executables.
In case anybody encounters this for a .NET 4.5 executable in Visual Studio 2013 (and possibly Visual Studio 2012):
We solved it by switching the project to .NET 4.0 and then back .NET 4.5 (on the Build tab of the project properties). This reenabled the checkbox "Prefer 32 bit" for AnyCPU.
This setting may also be disabled if your project is a unit test project. It turns out the setting wasn't my issue anyway. I got tests running by changing the Visual Studio test runner to run tests as a 64-bit process.
In Visual Studio Community 2015, I found this in the Test menu:
Test > Test Settings > Default Processor Architecture > X64
Here's more info from Microsoft:
https://msdn.microsoft.com/en-us/library/ee782531.aspx