Чому деякі програми вимагають встановлення, а інші - ні?


3

Я думаю, що це в основному справа Windows, але чому деякі програми потрібно встановити, щоб вони працювали належним чином, а потім видаляли їх, щоб видалити, де деякі інші приходять як виконувані файли, які можна запускати та видаляти самостійно?


2
Більшість програм насправді не потрібно встановлювати. Це повністю залежить від бажання автора програми. Є кілька причин, з якими програміст намагався створити інсталятор для своєї програми. Питання, яке зараз написано, надзвичайно широке. Будь ласка, зменшіть обсяг свого питання до практичної проблеми.
Рамхаунд

1
@Ramhound ти не зовсім прав. Існує лише одна причина, чому деякі програми вимагають встановлення, а інші - використання спільних dll.
LPChip

1
Якби я мав надати копію певної версії одного з DLL, встановленого перерозподілом Visual C ++, і розмістив її в простому стислому архіві, ця програма використала б цю копію цього файлу перед будь-яким іншим файлом у системі. Тому я не дуже згоден із твердженням, що спільні файли бібліотек є причиною використання інсталяторів.
Рамхаунд

Як програміст, це я дізнався. Але я думаю, що це питання думки.
LPChip

1
Я можу погодитися, що це залежить від спільного файлу. Проблема з широкими твердженнями полягає в тому, що я можу написати простий .bat скрипт, який робить усе, що зазвичай робить інсталятор .msi. Раніше єдиний раз, коли мені довелося скриптувати інсталятор для однієї з моїх програм, була бібліотека COM COM, тобто тому, що під час процесу інсталятора, як правило, реєструвалася створена мною бібліотека COM COM.
Рамхаунд

Відповіді:


3

Коли програміст використовує функцію, яка не є власною для Windows, але замість цього потрібен спільний dll, наприклад, якийсь фреймворк, програму потрібно встановити для того, щоб переконатися, що всі спільні DLL розміщені в потрібному місці.

Видалення робить те ж саме, воно побачить, чи використовуються спільними dll, якими користується програма, іншими програмами, а якщо ні, то вони видаляють спільні DLL.

Спільні DLL-файли зазвичай розміщуються в папці C: \ Windows \ System32 (або syswow64 відповідно).

Іноді програміст просто хоче включити інсталятор, щоб він автоматично розміщував ярлики в меню "Пуск" та / або на робочому столі, тоді як сама програма насправді не використовує спільний dll.

Нарешті, деякі мови програмування компілюють код сценарію у виконуваний файл і використовують певні бібліотеки. Visual Basic - це форма такої мови. У цих випадках вам потрібно зв’язати набір dll зі своєю програмою, щоб переконатися, що вони працюють належним чином. Копіювання виконуваного файлу все ще може працювати, якщо ті спільні DLL вже є в системі, але якщо вони не є, користувач отримає помилку, стверджуючи, що пропускає певний файл, наприклад: vbvm50.dll (Visual Basic 5.0 runtime)


2
Ця відповідь серйозно неповна. Додамо кілька речей (люб’язно надано Вікіпедією): Переконайтеся, що необхідні системні вимоги дотримані, Перевірка наявних версій програмного забезпечення, Створення або оновлення програмних файлів і папок, Додавання конфігураційних даних, таких як файли конфігурації, записи реєстру Windows або змінні середовища , Роблячи доступне для користувача програмне забезпечення, наприклад, створюючи посилання, ярлики або закладки, налаштовуючи компоненти, які запускаються автоматично, наприклад, демони або служби Windows, активація продукту, оновлення версій програмного забезпечення ...
misha256,

Розміщення спільних DLL-файлів у папку Windows дуже давно перешкоджає, але люди все ще кажуть, що спільні DLL-файли копіюються в каталоги Windows. Однак до певної міри це все-таки вірно: спільні збори зберігаються під каталогом Windows, і єдиний спосіб управління ними - це Windows Installer.
Олексій Іванов
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.