вторник, 17 марта 2009 г.

Установка Delphi 7/2006 на Windows Vista

Это перевод Delphi on Windows Vista. Автор: Dr.Bob.

Прим. пер.: я выделил описание установки Delphi 7 на Windows 7 в отдельную статью.

Дополнение к статье: как писать приложения для Windows Vista.

Подписчики MSDN уже могут скачать и установить Windows Vista (я установил Vista Business на свой ноутбук, на котором теперь стоят аж четыре операционки: Windows 2000, Windows XP, Windows 2003 Server, а теперь и Windows Vista "Business").

В отличие от Windows XP и Windows 2003, которые визуально отличаются от Windows 2000 в основном службой Themes (которая отключена по умолчанию в Windows 2003), в Windows Vista внешний вид пользовательского интерфейса значительно изменился. Я пишу внешний вид, потому что содержимое осталось практически тем же самым. Нельзя сказать, что это совершенно новый мир: мне не составило труда найти все нужные и знакомые места (хотя деталей и возможностей было изменено достаточно).

Одной из важных новых возможностей Windows Vista является так-называемый User Account Control (UAC), который представляет из себя добавку к безопасности, которая следит за тем, что конкретно разрешено выполнять каждому приложению на вашей машине. Приложениям следует работать по принципу минимально возможных прав и привилегий (и очень редко - с правами администратора), чтобы избежать потенциального ущерба. С UAC все пользователи становятся обычными пользователями (без администраторских прав), с возможностью добавить (временно) приложениям больше привилегий, когда они необходимы.

UAC усиливает защиту против вирусов и spyware, но иногда надоедает, когда дело касается приложений, которым можно доверять. Например, запись в папку Program Files по-умолчанию запрещена - мы увидим это, когда будем запускать Delphi на Vista.

Поскольку я в основном использую Delphi 7 (для Win32) и Delphi 2006 (для Win32 и .NET), я начал процесс установки этих версий Delphi на релизную версию Windows Vista для проверки совместимости как Delphi, так и приложений Delphi Win32 (и .NET) под Windows Vista.

Delphi 7

Нижеследующее должно быть применимо к любым версиям Delphi до 7-ки включительно, а также ко всем версиям C++ Builder до версии 6 включительно. Информацию по Delphi/C++ Builder 2006 см. ниже (прим. пер.: Delphi/C++ Builder 2007 и выше поддерживают Vista изначально).

Во-первых, когда я попытался установить Delphi 7 на Windows Vista, я получил диалог мастера совместимости программ, сообщающего, что эта программа имеет проблемы совместимости с Windows Vista:

Вы можете щёлкнуть на "Поиск решений в Интернете" ("Check for solutions online"), но сильно это не поможет (для Delphi 7 уже давно не выпускается патчей). Сейчас просто щёлкните на "Запуск программы" ("Run program") для запуска установщика Delphi:

Используя установщик Delphi, вы можете установить Delphi 7 (и другие программы типа InterBase). У вас не должно возникнуть проблем при установке:

У меня возникли небольшие проблемы с соединением с интернетом (сервером лицензий) во время активации, но, надеюсь, эта проблема скоро разрешится - пока у меня есть 30 дней.

После установки

При запуске установленной Delphi 7 я снова получил сообщение мастера совместимости программ с первого рисунка выше. В этот раз я отметил галочку "Больше не показывать это сообщение" ("Don't show this message again") и нажал "Запуск программы" ("Run program"). Delphi запустилась, но пожаловалась на то, что не может (т.е. у неё нет прав) переименовать файл delphi32.$$$ в delphi32.dro:

А после закрытия сообщения об ошибке Delphi открывается, но без нового проекта. Поскольку я обычно запускаю Delphi 7 с флагом -np, то я даже ничего не заметил. Однако при попытке создать новый проект снова вылезло сообщение о невозможности переименования файла Delphi32.$$$ в Dephi32.dro.

Очевидно причина в том, что приложению Delphi32.exe запрещено писать в папку Delphi7\Bin.

Изменение разрешений

Чтобы исправить это, нам нужно разрешить обычным пользователям машины изменять содержимое этой папки.

Прим. переводчика:
Вместо изменения прав на папки можно также установить Delphi 7 в любую другую папку, которая не требует админских прав для записи (а не в умалчиваемую Program Files). Этот вариант тоже приемлем, если вас не волнует расползание программ по разным папкам.

Как вариант стоит упомянуть и о возможности запуска Delphi32.exe с правами администратора (устанавливается соответствующий флажок в опциях ярлыка), но этот вариант настоятельно не рекомендуется к использованию.

Как изменить права - показано на следующем рисунке:

Помимо папки Delphi7\Bin, нам также нужно разрешить пользователям модифицировать папку Delphi7\Projects, так что приложения и пакеты смогли бы там создаваться:

Замечу, вы должны сделать аналогичные изменения и для любых других ваших папкок, в которые вам нужно писать (например, unit output directories), чтобы вы смогли компилировать и запускать приложения Delphi 7.

Снимок экрана ниже показывает запущенную Delphi 7 в Windows Vista с открытым новым проектом VCL:

После указанных изменений прав папок компиляция и запуск приложений Delphi 7 работают отлично. Теперь, когда Delphi 7 готова и работает, я могу перенести некоторые свои Win32 программы в Windows Vista и начать использовать новые возможности UI. Единственной оставшейся проблемой является интегрированная справка (WinHelp), которая больше не поддерживается в Windows Vista.

Согласно статье KB917607, начиная с Windows Vista, приложение Windows Help больше не поставляется вместе с Windows. Также, сторонним приложениям, использующим .hlp файлы, запрещено распространять дистрибутив Windows Help!
Пользователи, которые хотят использовать 32-х битные .hlp-файлы, должны скачать установщик Windows Help с Microsoft Download Center и установить её на свои машины (прямые ссылки на скачивание можно найти в той же KB917607).

Delphi 2006

Кроме установки и работы с Delphi 7 на Windows Vista, я также хотел использовать Delphi 2006 - последнюю версию Delphi (прим. пер.: ко времени написания оригинала статьи). Замечу, что Delphi 2006 поддерживает как Win32, так и .NET 1.1, и требует для работы .NET Framework версии 1.1, которую нам надо установить отдельно.

Установочный диск Delphi 2006 запускает установщик, который предлагает следующие опции:

Запуск установки Borland Developer Studio 2006 (aka Delphi 2006) на Windows Vista сперва запускает утилиту BDS Bootstrap, которая находит, что у нас не стоит необходимый набор программ:

Во-первых, Windows Vista включает в себя .NET Framework 2.0 и 3.0, но не .NET Framework версии 1.1. А поскольку Delphi 2006 IDE требует именно .NET Framework 1.1, то нам нужно установить его отдельно:

После установки .NET Framework 1.1, нас просят установить Service Pack #1 для .NET Framework 1.1:

Однако, если вы согласитесь устанавливать обновление, то результатом будет не установка .NET Framework 1.1 Service Pack #1, а диалог об ошибке, сообщающий, что KB867460 был запущен неверно:

Забавно, что если вы закроете этот диалог, то установка Delphi 2006 продолжиться как ни в чём не бывало. Похоже, что установщик .NET 1.1 Service Pack 1 вызывается неверно в Windows Vista, так что нам надо запустить его вручную (NDP1.1sp1-KB867460-X86.exe) с папки dotnetRedist на Delphi 2006 CD.

Замечу, что после установки .NET 1.1 SP1 вас попросят сделать перезагрузку. А после перезагрузки вам сообщат, что приложение netfxsetup.exe было заблокировано - вы можете разрешить его выполнение используя иконку в трее.

После этого запустится настоящий установщик Delphi 2006 и установит Delphi без каких-либо проблем.

Наконец, когда Delphi 2006 установлена, настало время её запустить. Это приведёт к сообщению об ошибке, связанным с первым сообщением об ошибке в Delphi 7 (хотя сообщение в случае Delphi 7 мне кажется более понятным).

Ключевыми словами здесь является "Access is denied." ("В доступе отказано"):

Это или аналогичное сообщение показывается для всех .NET personalities.

Эти ошибки связаны с User Account Control (UAC), который я упоминал выше, а в частности с тем фактом, что BDS IDE не разрешено писать в под-папку Borland\BDS\4.0\Bin папки Program Files.

Простейшим обходным путём для этой проблемы, что я нашёл, явилось разрешение записи для обычных пользователей в папку Borland\BDS\4.0\Bin:

Вы также можете захотеть установить аналогичные разрешения для папки Borland\BDS\4.0\Demos, особенно, если вы хотите открывать и компилировать демки на месте, без копирования их в другие места.

Прим. пер.: папка с проектами BDS 2006 теперь находится в папке Мои документы, так что для неё уже не нужно менять права.

Update #2

Когда Delphi 2006 установилась, вы можете захотеть установить Update #2 (а также Hot Fixes из так называемого HotFix Rollup) и любые другие обновления, которые могут выйти позже. Однако когда вы попытаетесь запустить msp файл Update 2, обновление будет жаловаться на неверную версию Borland Developer Studio (это бред, но реальная причина в том, что обновление не может получить доступа к БД установщика).

Мы должны запустить установку Update #2 вручную из-под администратора, используя командную строку, запущенную в режиме элевации ("Run as Administrator"). Затем надо перейти в папку с Update #2 и запустить:

msiexec /update bds2006_en_arch_upd2.msp

Части "en" и "arch" у вас могут быть другими - они зависят от языка и редакции вашей версии Delphi 2006. Эта команда запустит установщик Update #2, после работы которого вы также сможете применить HotFix Rollup.

Примечание: на некоторых машинах с Windows Vista достаточно просто запустить файл bds2006_en_arch_upd2.msp в режиме "Run as Administrator", а msiexec сам позаботится об остальном.

Заключение

Хотя Windows Vista была выпущена позже Delphi 2006, приятно осознавать, что установка и работа старых версий Delphi 2006 на Windows Vista не является существенной проблемой. Вам нужно играть по обновлённым правилам, если вы хотите писать приложения для Windows Vista, но это история для другого дня.

В заключение - напоминание из pre-Vista эры: Delphi 2006 About Box, который не способен распознать Windows Vista, и пишет сообщает версию ОС как Windows 2000 (Build 6000):

24 комментария:

  1. А я ужегода полтора как под Вистой работаю на Delphi 6 :))) и до сих пор недоумеваю откуда пошли слухи про несовместимость D7 и Висты.

    ОтветитьУдалить
  2. D7 и Windows 7 настолько не совместимы что дальше некуда.=)
    Но все же статье и ее автору - огромное спасибо=)))

    ОтветитьУдалить
  3. Ну, Win7 у меня со вчерашнего дня стоит основной системой, так что можно и D7 попробовать поставить :) (хотя я не собирался, себе я поставил D2010).

    ОтветитьУдалить
  4. Delphi 7 пашет на Win7 x64 без каких-либо заметных проблем. Достаточно установить ее в папку, отличную от Program Files.

    ОтветитьУдалить
  5. А по поводу установки dotNETFramework 1.1 и SP1 к нему: нашел такое решение:
    1.Download Microsoft .NET Framework 1.1 Redistributable Package and Microsoft .NET Framework 1.1 Service Pack 1 using links below:
    2.Save both installations in the same directory
    3.Ensure that the Microsoft .NET Framework 1.1 Redistributable Package is named dotnetfx.exe. If not, change its name to dotnetfx.exe.
    4.Ensure that Microsoft .NET Framework 1.1 Service Pack 1 is named dotnetfxsp1.exe. If not, change its name to dotnetfxsp1.exe.
    5.Open command prompt as Administrator, and change to the directory where the two installations are saved.
    6.Run the following commands using the order shown below
    ◦dotnetfx.exe /c:"msiexec.exe /a netfx.msi TARGETDIR=C:\dotnet"
    ◦dotnetfxsp1.exe /Xp:C:\dotnet\netfxsp.msp
    ◦msiexec.exe /a c:\dotnet\netfx.msi /p c:\dotnet\netfxsp.msp
    7.Install both Microsoft .Net Framework 1.1 and Service Pack 1 by running C:\dotnet\netfx.msi

    ОтветитьУдалить
  6. Итак, я нашёл время поиграться с установкой Delphi 7 на Windows 7 и обнаружил, что вот это:

    >>> D7 и Windows 7 настолько не совместимы что дальше некуда

    не соответствует истине.

    В Windows 7, что касается установки Delphi, не изменилось ничего. Более того, Delphi 7 прекрасно себя чувствует даже в 64-х битной системе.

    Тем не менее, я выделил описание установки в отдельную статью.

    ОтветитьУдалить
  7. пожалуйста подскажите, как сделать чтоб рвбтал РАН?? приложение запускалось на др. комп-ре, а на моем безо всяких изменений не зап-ся.. говорит ошибка.. что то вроде несуществующий unit..

    ОтветитьУдалить
  8. Вы ошиблись: здесь телепатов нет.

    ОтветитьУдалить
  9. Спасибо большое!
    Мне эта статья очень помогла.
    =)

    ОтветитьУдалить
  10. хм..а у меня даже до установки толком не доходит, сразу пишет не совместим и все(( у мя vista и delphi7 entherprise 2002

    ОтветитьУдалить
  11. Может покажете скриншот этого окна?

    ОтветитьУдалить
  12. У меня лицензионная версия Borland Developer Studio 2006, НО ОНА НЕ РАБОТАЕТ В Window7. Можно ли её установить в Win 7 ?

    ОтветитьУдалить
  13. Как ВАМ удалось это сделать? Установилась программа в Win7 отлично ,но при запуске выдаёт ошибку и не поддаётся отладке.Если возможно,то я бы хотел услышать ВАШ совет.Мой E-mail
    vladmel41@ukr.net.

    ОтветитьУдалить
  14. Устанавливал ровно так, как указано в тексте. На Vista и на Win7. На VMWare, VirtualBox и реальную машину.

    ОтветитьУдалить
  15. > Установилась программа в Win7 отлично ,но при запуске выдаёт ошибку и не поддаётся отладке.

    Установите свойства ярлыка bds: Совместимость XP SP3, запускать от администратора. Станьте владельцем каталога Program Files/Borland и убедитесь, что вашему пользователю дан к нему полный доступ.

    ОтветитьУдалить
  16. Хорошая статья!

    ОтветитьУдалить
  17. Спасибочки, очень помогло, ура ! BDS поставилась !

    ОтветитьУдалить
  18. добавлю, ставила на Vista

    ОтветитьУдалить
  19. Спасибо большое! Статья очень помогла!

    ОтветитьУдалить
  20. СПАСИБО БОЛЬШОЕ ЗА СТАТЬЮ)))) ВЫ МЕНЯ СПАСЛИ))) Установила делфи на виндовс 8, а он не работает, сделала, как вы подсказали и все получилось))))) УрА!!!! спасибо

    ОтветитьУдалить

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.