




Управляемый проект автоматически создается в соответствии с выбранной архитектурой => проект C# по умолчанию, созданный на AMD64, будет AMD64, X86 на X86. Стандартный всегда 32-битный по умолчанию.
Чтобы явно установить платформу:
1 откройте обозреватель решений, выберите решение, щелкните правой кнопкой мыши -> Configuration Manager.
2 перейдите в «Активная платформа решений», нажмите «Создать».
3 в появившемся диалоговом окне «Новая платформа решения» выберите новую платформу, скажем, Itanium. Установите для параметра «Копировать настройки из» значение «Любой процессор», которое было настройкой по умолчанию в «Платформе активного решения».
4 щелкните ОК.
Это от WebLog
Как сказал Патрик Дежарден, с небольшим дополнением.
Будьте осторожны, если у вас есть сторонняя DLL, которая использует Interop и скомпилирована с 32-разрядной версией. В этом случае вам нужно будет специально настроить все ваши сборки, которые его используют, для использования x86, иначе произойдут всевозможные странные вещи.
Вы также можете выполнить проверку во время выполнения, чтобы убедиться:
using System;
using System.Runtime.InteropServices;
class SystemChecker
{
static bool Is64Bit
{
get { return Marshal.SizeOf(typeof(IntPtr)) == 8; }
}
}
Вы можете скомпилировать для 64-битной версии с помощью флага /platform. Обратите внимание, что визуальная студия экспресс не имеет простой 64-битной настройки компиляции.
См. здесь для получения дополнительной информации и здесь. Из второго источника взята следующая информация:
В 64-битной операционной системе Windows:
/platform:x86, будут выполняться в 32-битной среде CLR, работающей под WOW64./platform:anycpu, будут выполняться в 64-битной среде CLR./platform:anycpu, будут выполняться в той же среде CLR, что и процесс, в который они загружаются.Проверка времени выполнения:
Вы можете проверить битовую среду выполнения во время выполнения с помощью одного из следующих параметров
bool is64BitProcess = IntPtr.Size == 8;
int bitProcess = IntPtr.Size*8;
//C# 4 provides System.Environment.Is64BitProcess
//TimothyP's solution:
bool is64BitProcess = Marshal.SizeOf(typeof(IntPtr)) == 8;