No .NET 4.5 e no Visual Studio 11, o queijo foi movido. O padrão para a maioria dos projetos .NET é novamente AnyCPU, mas há mais de um significado para AnyCPU agora. Existe um subtipo adicional de AnyCPU, "Qualquer CPU de 32 bits preferida", que é o novo padrão (no geral, agora existem cinco opções para a opção de compilador C # da plataforma: x86, Itanium, x64, anycpu e anycpu32bitpreferred ) Ao usar o sabor "Prefer 32-Bit" do AnyCPU, a semântica é a seguinte:
- Se o processo for executado em um sistema Windows de 32 bits, será executado como um processo de 32 bits. A IL é compilada no código de máquina x86.
- Se o processo for executado em um sistema Windows de 64 bits, será executado como um processo de 32 bits. A IL é compilada no código de máquina x86.
- Se o processo for executado em um sistema Windows ARM, ele será executado como um processo de 32 bits. A IL é compilada no código de máquina do ARM.
A diferença, então, entre “Qualquer CPU preferida de 32 bits” e “x86” é apenas esta: um aplicativo .NET compilado para x86 falhará ao ser executado em um sistema ARM Windows, mas um aplicativo “Qualquer CPU preferida de 32 bits” será executado com sucesso.