Какой режим для .NET Application в Windows 2008 64 бит - PullRequest
0 голосов
/ 13 марта 2009

Как будет работать мое приложение .NET под Windows 2008 x64? Как 32-битное приложение или как 64-битное? Имеет ли это какое-то значение?

Ответы [ 6 ]

5 голосов
/ 13 марта 2009

Он будет работать 64-битно, если он нацелен на 64-битную архитектуру, или настроен для работы на любой платформе.

Он будет работать 32 бита, если он предназначен для 32-битной архитектуры. Если вам нужно использовать собственные библиотеки DLL, убедитесь, что они правильно настроены.

Это будет работать так же, как 64-битная Vista.

2 голосов
/ 13 марта 2009

Если вы скомпилируете его с параметром «Запустить на любой машине», оно будет работать как 64-битное приложение.

Если принудительно скомпилировать его как «запустить как 32-битный», то он будет работать как 32-битное приложение на компьютере x64.

0 голосов
/ 17 декабря 2011

Если это приложение ASP.Net, вы можете настроить IIS на «Включение 32-разрядного приложения» в пуле приложений для нашего веб-приложения, чтобы оно имитировало 32-разрядное.

Итак, последний вопрос «Зависит»

0 голосов
/ 14 марта 2009

После моего вопроса здесь и ответа на него я дважды подумаю о том, чтобы приложение могло работать как 64-разрядное. Кажется, что 64-битный JIT действительно ограничен по сравнению с более зрелым 32-битным JIT.

0 голосов
/ 13 марта 2009

.net код, скопированный для целевой «любой» платформы (ознакомьтесь с конфигурацией сборки проектов), будет скомпилирован из IL в инструкции для 64-битного машинного кода. если вы укажете 32-битную, то она будет скомпилирована в 32-битную, а затем преобразована, как если бы это был 32-битный машинный код, работающий на 64-битной ОС!

При компиляции в 64-битный код возникают проблемы с совместимостью некоторых библиотек.

Редактировать: XNA является примером того, где вы бы хотели нацелиться на 32, проверьте это: http://www.brianpeek.com/blog/archive/2007/11/13/x64-development-with-net.aspx

Примечание: Int является int независимо от того, на какой платформе он работает? не так ли?

0 голосов
/ 13 марта 2009

Зависит от того, как вы его построили, и как вы должны были его построить. :-) Если вы не указали конкретную модель, то ваше приложение будет работать как 32-разрядное на x86 и 64-разрядное на x64. Это вообще то что ты хочешь. Исключения из этого начинают появляться, когда вы взаимодействуете с 32-битным кодом в 64-битной системе. Например, если вы обращаетесь к DLL, которая ожидает, что int будет 32-битным, и вы передадите его 64-битным, то все очень быстро пойдет не так.

...