Зачем мне устанавливать программу в C: / напрямую?

14

По каким причинам некоторые программы устанавливаются (по умолчанию или даже по требованию) непосредственно в C: /, а не, как большинство, в папку C: / Program Files /?

Кроме того, почему так часто распаковываются драйверы? Я видел много папок Intel, Nvidia, ATI и Xerox на дисках C: / -, хотя для меня нет никакого смысла вообще использовать их по умолчанию, а не на рабочем столе или в других пользовательских папках. Файлы не должны быть обязательными для всей системы, поскольку они являются только временными.

Благодарность!

Изменить: Этот вопрос не о конкретном программном обеспечении, а о причинах, почему имеет смысл отклониться от обычного способа. Я думал, что это может иметь какое-то отношение к серверам, которые должны продолжать работать, но это всего лишь догадка, основанная на фактах вообще, почему серверная программа не должна запускаться из C: / Program Files /, если все разрешения установлены. То же самое возможно для общесистемных необходимых файлов, таких как установочные файлы драйвера.

Очевидно, это касается только Windows.

zuiqo
источник
6
Установка программного обеспечения является основной частью цикла разработки, и если есть конкретные причины, по которым следует развертывать области за пределами Program Files, разработчики, возможно, захотят узнать об этом. Так что я бы сказал, что в целом по теме.
GrandmasterB
Я думаю, что приложения MS-DOS устанавливаются в C: \, но, конечно, Windows 10 не MS-DOS.
младший Рубиист

Ответы:

11

Нет реальной технической причины устанавливать что-либо в папку непосредственно в папке c: \ или разархивировать драйвер в папке c :.
Это даже противоречит руководствам по разработке программного обеспечения Windows, опубликованным Microsoft.

Но:
в случае, если пользователю необходимо дать инструкции для ручного запуска чего-либо в этой папке, удобно иметь возможность давать пользователю простые инструкции.
Как: Открыть «Мой компьютер», открыть C :, открыть [папку], а затем открыть программу «Настройка».
Путем принудительного исправления пути, подобного этому, он согласован для всех пользователей, что значительно облегчает жизнь технической поддержке.
Это очень часто имеет место для загрузки драйверов. Все крупные производители, кажется, делают это так.

Я работал в 1-й линии службы поддержки по случаю.
Вы не поверите, сколько пользователей скачивают что-то, распаковывают, получают телефонный звонок в промежутке до 15 минут, не могут вспомнить, где на жестком диске они разместили разархивированные файлы.
Затем они звонят в службу поддержки или техническую поддержку.
Если вы человек, который обрабатывает эти вызовы, вы очень быстро начнете ценить логику размещения этих файлов непосредственно в C: \

Tonny
источник
4
Кроме того, «C: \ Program Files» зависит как от локали, так и от архитектуры процессора (x86 и x64), а «C: \» - нет. «% ProgramFiles%» не зависит от локали, но имеет тенденцию сбивать с толку опытных пользователей, которые не думают, что это похоже на реальный путь, или не получают правильные знаки процента. В 64-битных системах это будет неправильный путь для 32-битных приложений.
Абстраск
1
в этом случае я думаю, что легче извлечь файлы на рабочий стол, чем C: \
phuclv
@phuclv Не совсем, особенно с Windows 8 и более поздними версиями. Папка «Рабочий стол» имеет очень сложные разрешения файловой системы (особенно при использовании перемещаемых профилей), которые могут помешать установщику. Он также может быть перенаправлен в другое место (возможно, в сеть или в место для хранения). И многие virusscanners просто не доверяют вашему установщику, если вы пытаетесь запустить его с рабочего стола. В Windows 10 AppLocker - это еще одна возможная вещь, которая может мешать запуску содержимого с рабочего стола (во многих компаниях он настроен на блокировку запуска содержимого с рабочего стола).
Тонни
7

По каким причинам некоторые программы устанавливаются (по умолчанию или даже по требованию) непосредственно в C: /, а не, как большинство, в папку C: / Program Files /?

Некоторые разработчики не следуют стандартным соглашениям, потому что они либо не знают, либо слишком ленивы, чтобы делать вещи «правильно». Многие разработчики-любители также будут жестко кодировать пути в свои программы и / или установщики, а не запрашивать среду (например,% TEMP%,% APPDATA%,% PROGRAMFILES%).

Кроме того, почему так часто распаковываются драйверы? Я видел много папок Intel, Nvidia, ATI и Xerox на дисках C: / -, хотя для меня нет никакого смысла вообще использовать их по умолчанию, а не на рабочем столе или в других пользовательских папках. Файлы не должны быть обязательными для всей системы, поскольку они являются только временными.

Как предположил Тонни, это отчасти для упрощения технической поддержки, но также и для вашего удобства. Когда вы извлекаете файлы драйверов в место, которое легко найти и сделать доступным для всех пользователей, система также легко находит файлы снова, если вам необходимо переустановить драйверы. К сожалению, большинство поставщиков не очищают старые файлы, поэтому вы можете получить гигабайты старых пакетов драйверов, которые больше никогда не будут использоваться. В некоторых случаях может быть более целесообразно извлечь их в% TEMP% или в учетную запись «Все пользователи», и некоторые поставщики делают именно это.

грабить
источник
2

Хотя «большинство» программных и конфигурационных файлов могут обрабатывать длинные пути каталогов, смешанную заглавную букву, пробелы и «нестандартные» символы, они не всегда работают, и это может привести к небольшим трудностям.

То, что Microsoft переместила папку «Пользователи» в корневой каталог для Vista и 7, вероятно, является хорошим показателем того, сколько людей предпочитают корневой каталог (по умолчанию «c:») на практике.

donlindsay
источник
1

Пространства . Причина в пространствах .

Там есть пространство C:/Program Files. Если вы поместите это в команду оболочки как есть, она будет интерпретирована как два отдельных аргумента. C:/Programи Files. Это, конечно, очень легко исправить, просто цитируя его, "C:/Program Files"или C:/Program\ Files, тем не менее, некоторым программам удается это испортить. Чтобы обойти эту проблему или облегчить работу ленивых сценаристов, программы иногда устанавливаются C:напрямую.

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

mpen
источник
и длина вещи. c:\program filesэто долго печатать .. можно использовать вкладку, но не если это параметр. И часто каталоги внутри него имеют тенденцию быть длинными. C:\Program Files\Microsoft Visual Studio 10.0 infact% PATH% не может справиться со многими длинными каталогами, потому что он имеет ограничение в 2 или 4 тысячи символов
barlop
0

Вы заявляете, что это касается только Windows, но программное обеспечение может быть перенесено в / из других операционных систем. Кроме того, могут быть различия между версиями Windows, например, некоторые переведенные версии Windows также переводят это имя папки, и пользователь также может изменить местоположение (например, вместо «C: \ Program Files» я использовал «P: \» для какое-то время). Все это может быть обнаружено программным обеспечением, но проще использовать фиксированное местоположение. Также в случае драйверов может быть необходимо знать, где находятся файлы, в то время как эта информация недоступна из ОС.

Герман
источник
0

Некоторые старые программы (эпоха DOS, Win 3.1) не могли принимать пробелы или «длинные» имена в пути, откуда они открываются. Это довольно редко в наши дни, хотя.

Установщики должны получить настройки об установке системы. Предполагается, что эти настройки включают местоположение директории Program Files среди других деталей. Легитимные программы упакованы в установщики, которые подключаются к этой информации и отслеживают, если вы переходите от предлагаемых по умолчанию настроек.

С другой стороны, драйверы предназначены для обработки операционной системой (Диспетчер устройств-> Обновление драйверов) - если бы они находились внутри установщика, Диспетчер устройств не смог бы получить к ним доступ для их установки. Они не гибки в том, где вы их положили.

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

davidjmcclelland
источник
0

Некоторые программы работают со сбоями, когда они существуют в пути с пробелами (то есть «Program Files»), поэтому они установлены в корне C :.

Однако я бы поспорил, что многие программисты были ленивы и просто решили из-за удобства выложить свою программу в C: \ по умолчанию.

Bigbio2002
источник
0

TLDR; отделить важные программы, от которых другие программы могут зависеть, от обычных программ, таких как игры / браузеры / все остальное, что вы установили.

Я думаю, что еще одна важная причина, по которой люди выбирают установку на C: \, связана с тем, почему они в первую очередь создали Program Files: для разделения программ из системных файлов таким же образом, как создается папка Users, для отделения пользовательских файлов от программы / системы. файлы.

Поэтому, если разработчик не хочет, чтобы пользователь удалил его, потому что он не помнит, для чего он (думайте, упакованные элементы разработки, такие как аудио-плагины, или целые языки, такие как python / ruby), тогда они устанавливают программу на диск C: \, чтобы вроде как включить его в «системные файлы», но не помещать в папку Windows по понятным причинам.

Я знаю, что это старый пост, но он не заблокирован, и мне было что добавить.

Дункан
источник