É possível forçar um aplicativo C # compilado com a tag de arquitetura “Any” a ser executado como um aplicativo de 32 bits em janelas de 64 bits?

7

Eu tenho um aplicativo .Net, compilado com o sinalizador "Qualquer" definido para o tipo de arquitetura.

Eu estou querendo saber se é possível forçar o aplicativo a ser executado como um aplicativo de 32 bits, em uma (qualquer) versão de 64 bits do Windows, sem recompilar o aplicativo em um executável de 32 bits.

    
por blueberryfields 24.09.2009 / 22:17

1 resposta

8

Sim, se você definir as propriedades do projeto para usar 32 bits (x86 eu acho) explicitamente, ele sempre será executado nesse modo. Tivemos esse problema ao usar o provedor SQLite ADO.Net (ele estava procurando apenas pela versão de 32 bits, que não pôde ser carregada quando executada em um sistema x64).

Você pode usar corflags para definir o sinalizador de bit de 32 bits (ha ha) no executável. Aqui está um exemplo . Em suma, você vai correr:

corflags /32BIT+ assembly.exe-or.dll

Você encontrará o corflags.exe instalado com o SDK com o Visual Studio (installed in C:\Program Files\Microsoft SDK.0a or 7.0\bin) ou poderá obtê-lo a partir do Microsoft Windows SDK para Windows 7 e .NET Framework 3.5 SP1 .

    
por 25.09.2009 / 00:52