C# для 64-битной ОС?

Как я могу оптимизировать свою компиляцию для 64-разрядной версии Windows?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
4 265
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Управляемый проект автоматически создается в соответствии с выбранной архитектурой => проект 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.
  • DLL, скомпилированные с помощью /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;

Другие вопросы по теме