Re[5]: Зачем инсталлировать в "Common Files"?
От: alexbirk Россия  
Дата: 07.09.07 08:50
Оценка:
Здравствуйте, AlexanderDz, Вы писали:

AD>Здравствуйте, alexbirk, Вы писали:


AD>[...]


AD>>>>>Может быть тут кто-нибудь знает зачем инсталлировать компоненты в "C:\program files\common files\фирма" ?


A>>>>Я думаю, что для логического порядка. Что бы все общие файлы всех приложений хранились центролизованно.


AD>>>Зачем??? Какую проблему это решает? Более того, это приводит к "распылению" частей продукта по разным каталогам.


A>>Это позволяет однозначно определить то, где находятся общие файлы, которые могут быть использованы другими приложениями других фирм. А путь установки основного приложения может меняться пользователем.

A>>Под общими файлами подразумеваются не только общие библиотеки, но и разные ресурсы, графика, звуки и т.д. Опять же, когда общие файлы хранятся центролизованно то они легко поддаются обновлению (исправление ошибок).

AD>Для template-s документов есть отдельные каталоги. Языковые ресурсы для исполняемых модулей должны лежать рядом с модулями. Графика, звуки... может быть. Но слишком мало что-бы стоило париться. В случае моей конторы — их просто нет.


AD>Все исполняемые модули все-равно регистрируются в registry и путями к ним занимается COM подсистема.

AD>Обновлениями и исправлениями ошибок занимается Windows Installer — он специально для этого сделан.

Windows Installer не волшебник, он не сможет обновить общий файл, который находится в нескольких экземплярах в разных каталогах и поставляется с разными продкутами.

Пример:
Есть общий файл SharedLib.dll
Есть продукт Product1 и Product2, в поставку которых входит SharedLib.dll.

Если каждый продукт содержащий общую библиотеку будет помещать её в свой специфичный каталог, то в случае обнаружения ошибки в SharedLib.dll нужно обновлять оба продукта, т.к. каждый инсталлятор обновит только свою копию библиотеки.

Возникает также другая проблема. Я пришу свою программу, которая хочет использовать (динамически линковать) эту общую библиотеку и возникает вопрос, из какого каталога мне её использовать ? В результате мне приходится затачиваться на конкретный продукт Product1 или Product2, а не на общую библиотеку.

В качестве примера я привёл библиотеку, т.к. это наиболее типичный случай. Тоже самое может быть с любым видом файлов.

AD>Если уж на то пошло, если продукт полностью используется сторонними фирмами, чем плохо его устанавливать в "C:\program files\common files\фирма\продукт"


Потомучто в общем случае ПОЛЬЗОВАТЕЛЬ выбирает место, куда инсталлировать продукт. Например у меня на диске C: мало места и я хочу установить программу на диск D:. В результате большая часть программы будет на D:, а общие файлы поместятся в обедоступное место "<Common Files>".
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.