O executável pode ser compilado com sinalizadores indicando que ele pode ser executado apenas em um determinado "bitness". Você pode alterar esses sinalizadores usando o utilitário coreflags.exe que está disponível em todos os SDKs do .Net.
O sdk para .net 2.0 pode ser encontrado aqui .
Existem 3 modos principais para configurar uma DLL ou um executável:
- AnyCPU (vai jit para o que estiver disponível, preferindo 64 bits): / 32BIT + / ILONLY +
- x86: (desativa a compilação de 64 bits) / 32BIT + / ILONLY -
- x64: (desativa a compilação de 32 bits) / 32BIT- / ILONLY -
Geralmente AnyCPU é a melhor escolha, a menos que você esteja fazendo interoperabilidade COM ou de outra maneira chamando código nativo, caso em que o bitness deve ser o mesmo que o código nativo foi compilado.
Provavelmente você não deve tentar alterar o bitness de uma DLL de terceiros, já que se não for o padrão "AnyCPU", provavelmente há uma boa razão (geralmente DLLs de satélites nativos que podem fazer qualquer coisa, por exemplo gerar arquivos PDF ou usar outras bibliotecas nativas de terceiros).
Editar: Seguir o conselho da IBM para desabilitar o tempo de execução de 64 bits é um grande exagero, você pode fazer o mesmo apenas para este aplicativo usando o utilitário coreflags enquanto deixa o resto da estrutura e todos os aplicativos dependentes intactos. Reverta a alteração executando:
C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Ldr64.exe Set64