Переменная среды для принудительного запуска .СЕТЕВЫЕ приложения для запуска как 32-разрядные

StackOverflow https://stackoverflow.com/questions/619155

Вопрос

Мне сказали, что есть переменная окружения, для которой вы можете установить значение force .СЕТЕВЫЕ приложения для запуска как 32-разрядные приложения в x64 версиях Windows.Знаете ли вы, что это такое, или знаете ли вы ссылку на это?Боюсь, мой google-fu подвел меня сегодня (или его не существует).

Я использую Resolver One (электронную таблицу .NET) и хочу получить доступ только к некоторым 32-разрядным функциям без изменения исполняемого файла.Если я смогу настроить это из переменной окружения, то при необходимости я смогу получить доступ к 32-битной функциональности, но при необходимости также запускаться как 64-битное приложение.

(ПРИМЕЧАНИЕ:по сути, я хочу иметь возможность переключать, выполняется ли приложение как 32-битное или 64-битное во время запуска, вместо того, чтобы форсировать его во время компиляции.)

Спасибо

Это было полезно?

Решение

Я получил ответ от Дино Вейланда (разработчика Microsoft IronPython).У меня еще не было времени его протестировать...

Это COMPLUS_ENABLE_64BIT.Я думаю, что установка его в 0 отключает 64-разрядную версию.

Вы должны иметь возможность установить его как env var или добавить значение в HKLM\Software\Microsoft\.NetFramework с именем "Enable_64Bit", типом REG_DWORD и значением 0, чтобы установить его глобально (именно так работают все переменные COMPlus_ *).Этот может быть достаточно особенным (он должен запускаться до создания процесса), чтобы его можно было установить в ключе reg, но я не совсем уверен.

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

Как насчет эта ссылка

Не совсем переменная окружения, но просто используйте инструмент CoreFlags для переключения туда и обратно.

Чтобы переключиться на 32-разрядный:

CorFlags.exe TheApp.exe /32BIT+ 

Чтобы вернуться к 64-разрядной версии:

CorFlags.exe TheApp.exe /32BIT- 

Проверьте это: http://www.hanselman.com/blog/BackToBasics32bitAnd64bitConfusionAroundX86AndX64AndTheNETFrameworkAndCLR.aspx

целевая платформа в диалоговом окне свойств проекта, кстати.

Я собираюсь попробовать это в ближайшее время - в основном exe-оболочку, которая работает в 32-разрядной версии, а затем запускает из нее ваше целевое приложение.32-разрядный режим родительского файла должен принудительно запускать скомпилированный AnyCPU двоичный файл в 32-разрядном режиме.видишь http://lostechies.com/gabrielschenker/2009/10/21/force-net-application-to-run-in-32bit-process-on-64bit-os/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top