Предостережения при разработке 64-разрядной версии Vista
-
19-08-2019 - |
Вопрос
Я переношу свою рабочую станцию разработки с 32-разрядной Vista на 64-разрядную Vista.
Производственной платформой является 32-разрядная версия Windows Server и SQL Server 2008.
Кто-нибудь знает о каких-либо проблемах с переносом базы кода?
Редактировать:
система состоит из веб-форм, кода на c #, хранимых процедур.
существует также ajax.net, ssrs, ssis и динамические отчеты / графики от dundas.
тем не менее, я думаю, что другие пользователи могли бы оценить любые извлеченные уроки или отзывы в целом относительно этого шага.
ВЫВОДЫ:
По состоянию на 24 января 2009 г.
- Checkpoint VPN не поддерживает Vista 64 (на самом деле кажется, что очень немногие поддерживают)
- Утилита Cropper требовала специальной загрузки и перестройки для работы в Vista 64 (программа Cropper выглядит очень красиво, но в ней отсутствует функция захвата прокручиваемого окна).
Отсутствие поддержки Vista 64 сделало для меня это бесполезным занятием.Я хотел бы, чтобы кто-нибудь упомянул об отсутствии поддержки VPN, но в настоящее время нет поставщика vpn, поддерживающего 64-разрядные клиенты....Так что предупреждаю заранее - по состоянию на 28.02.2009 - использование Vista 64 не является хорошим вариантом для тех из нас, кому нужен vpn.
Решение
Я сделал именно это - перенес свою рабочую станцию на Vista 64, продолжая при этом развертывать код на 32-разрядных серверах Win2008.
Как правило, вашей самой большой проблемой будет уровень эмуляции WOW64 - это означает, что 32-разрядные процессы и 64-разрядные процессы видят разные версии одних и тех же ресурсов (разделы реестра, системные папки и т. Д.). В .NET есть перечисление System.Environment.SpecialFolder
который предоставит вам безопасный абстрагированный доступ к программным файлам, данным приложений и другим потенциально опасным системным папкам.Вам также потребуется принудительно запустить IIS в 32-разрядном режиме совместимости (он не может запускать 64-разрядные и 32-разрядные веб-приложения одновременно) - инструкции на http://support.microsoft.com/kb/894435
Однако нет ничего непреодолимого - я успешно компилирую COM-visible .СЕТЕВЫЕ сборки на Vista x64 (настройка компилятора на целевые процессоры x86), а затем развертывание их вместе с ASP.NET и устаревшим кодом ASP, запускающим 32-разрядные COM-объекты на 32-разрядном сервере, и все это работает очень хорошо.Там есть несколько заметок, которые могут показаться вам полезными, размещенных на мой блог;самая большая головная боль, с которой я столкнулся лично, заключалась в том, что 32-разрядные приложения (включая мой любимый текстовый редактор) больше не могут видеть C:\Windows\System32 ...но даже с этим достаточно легко справиться.
Другие советы
Не используйте жестко закодированные имена для системных папок.
(в любом случае, плохая идея)
Я столкнулся с одной проблемой с Vista 64:
Программные файлы
Программные файлы могут храниться в Программные файлы x86 или в Программные файлы возможно, вам придется обойти это, если в каком-либо из ваших кодов делаются предположения о том, где хранятся программы - даже если вы поступили правильно и использовали переменные среды, поскольку есть 2 местоположения, в которых теперь находятся 2 разные переменные среды.Вам нужно знать, на каком из них будет установлено ваше приложение, которое будет отличаться, если вы нацелены на любой процессор, от того, если вы нацелены на x86.
У меня было много проблем с добавлением стороннего 32-разрядного обработчика ISAPI в IIS на 64-разрядном сервере w2k3 (php), мне пришлось запустить IIS в 32-разрядном режиме совместимости.Однако, если со всем этим справятся, я не вижу никакой серьезной проблемы.