Где хранить код Delphi в Windows 7? - PullRequest
2 голосов
/ 27 января 2010

Я только что заметил, что некоторые из моих новых элементов управления Delphi установлены в папке Public Documents в Windows 7 (элементы управления TMS Smooth и Virtual Treeview). Есть ли причина для этого, это соглашение или несколько способов сделать что-то или что-то, что делает операционная система.

Есть ли место, где я могу установить корень моего элемента управления Source, чтобы он легче интегрировался с RAD studio и windows 7?

Ответы [ 5 ]

5 голосов
/ 27 января 2010

Когда вы компилируете файл PAS, компилятор помещает файл DCU с тем же именем в тот же каталог. Вы можете изменить это, но по умолчанию используется тот же каталог. В Windows 7 записи в папку «Программы» (и ее подпапки) для пользователей без прав доступа могут быть виртуализированы. Это означает, что когда программа, например Delphi, пытается выполнить запись в одну из этих папок, файл фактически будет записан в другом месте и может быть недоступен при следующем запуске программы.

Поэтому, поскольку компиляция исходных файлов - это то, что вы делаете регулярно, имеет смысл установить их в место, доступное для записи по умолчанию, например, Public Documents.

Однако большинство установщиков компонентов позволяют вам выбрать другое место установки. Пока вы выбираете папку, которая не является подпапкой Программы, у вас все будет в порядке.

3 голосов
/ 27 января 2010

Что касается вашего «корня управления исходным кодом», Windows 7 не требует, чтобы вы помещали его в какое-либо конкретное место, хотя некоторые люди могут предпочесть хранить свой исходный код в домашней папке пользователя (C: \ Users [Ваш пользователь Имя]), я лично предпочитаю использовать что-то короткое, например C: \ DEV, и это прекрасно работает для меня.

1 голос
/ 28 января 2010

Было время, когда авторы библиотек прекратили писать по умолчанию в. Они, вероятно, выбирают публичные документы, потому что сам Delphi помещает туда скомпилированные пакеты, и потому что это единственный надежно доступный для записи каталог, не зависящий от пользователя. В течение многих лет я использовал каталог: \ Dev \ Lib с правильным набором разрешений для хранения библиотек и: \ Dev \ Src для источников моих проектов (мне нравятся короткие пути). Вы не говорите, какую VCS вы используете - многим на самом деле не нужен один корень, вы можете иметь несколько деревьев каталогов под контролем исходного кода, каждое из которых имеет свой собственный корень. В любом случае помогает четкая структура каталогов.

Я обычно храню BPL в том же общем каталоге, который использует Delphi, потому что он уже находится в пути и избегает "мусорить" папку system32. К несчастью, многие разработчики компонентов все еще не соблюдают надлежащие правила для развертывания библиотеки, наиболее часто встречающиеся проблемы: - Нет отдельных папок для dcus (т.е. \ dcu \ D11), dcus остается в исходном каталоге, бесполезно при совместном использовании библиотеки между разными версиями Delphi - Пакеты, не использующие $ LibrarySuffix для установки версии пакета, но все же помещающие ее в имя источника пакета - BPL оставлен в каталоге пакета, а не в каталоге в пути.

1 голос
/ 27 января 2010

Указанная вами папка, вероятно, является частью результата SHGetFolderLocation (CSIDL_COMMON_APPDATA) в Windows 7. Это то, что раньше было C: \ Documents and Settings \ All Users \ Application Data в Windows XP, и это правильное расположение ( в соответствии с MS) для файлов приложений, применимых ко всем пользователям компьютера.

Поскольку я не делю свои машины для разработки с другими, я обычно устанавливаю компоненты в другом месте (например, у меня есть дополнительный жесткий диск на моей домашней машине и ноутбуке, который я использую для такого рода вещей). Это предотвращает проблемы UAC в Vista и Win7, когда файлы компилируются или создаются пакеты, так как я могу безопасно предоставить доступ на чтение / запись всем в этом дереве каталогов.

Я использую отдельную папку на моей рабочей машине вне корня C: \, которая называется Comps. Я устанавливаю все свои сторонние и внутренние компоненты в подпапки той, которая хранит их в одном месте.

1 голос
/ 27 января 2010

Это действительно дело вкуса ... просто будьте осторожны с хранением большого количества данных в вашем пользовательском каталоге ... особенно, если вы используете перемещаемые профили, так как эти данные будут отправляться на каждую машину, на которую вы входите (и обслуживаете) копия в сети). Хорошо для резервного копирования, плохо для времени входа / выхода.

Поскольку вы используете систему управления версиями для своих проектов, вам лучше создать новый каталог вне корня и поместить туда исходный код. Он не будет защищен UAC (кроме первоначального создания каталога первого каталога). Я имею тенденцию создавать каталог C: \ DEV на моих машинах, а затем создавать подкаталоги C: \ DEV \ 3RDPARTY и C: \ DEV \ SANDBOX, все мои сторонние компоненты попадают в подкаталоги в C: \ DEV \ 3RDPARTY и мои Каталог по умолчанию для Delphi указывает на «песочницу», где я создаю свои «тестовые» проекты.

Если вы разрабатываете стороннюю библиотеку для общественного пользования, то вам захочется использовать что-то вроде общедоступных документов, но дать пользователю возможность изменить каталог в соответствии со своими предпочтениями.

...