Установці - результат багаторічної еволюції, і трохи (спрощена) історія допомагає зрозуміти, чому вони роблять те, що роблять ..
Модель Windows 3.1 запропонувала файли конфігурації стилю config.ini для програми із підтримкою спільних бібліотек, що надходять у системні папки, щоб запобігти дублюванню та марному простору на диску.
Windows 95 представив реєстр, що дозволяє центральному магазину для конфігурації додатків замінювати багато файлів конфігурації. Що ще важливіше, конфігурація Windows зберігалася в тому самому місці.
Реєстр став роздутим завдяки програмам, які не прибирали після себе. Пекло DLL сталося в результаті декількох версій одних і тих же спільних бібліотек, що перезаписували одна одну.
.NET представив концепцію app.config (майже INI-файли відмічають 2, на цей раз із трохи більшою структурою, економлячи розробники, витрачаючи час на написання ручних парсерів). GAC був представлений для спільних збірок версій у спробі запобігти DLL Hell.
У Windows XP та інших випадках у Vista Microsoft намагалася визначити простір користувачів як місце для зберігання даних користувачів та файлів конфігурації в єдиному стандартному місці, щоб забезпечити доступ до роумінгових профілів та легкої міграції (просто скопіюйте свій профіль) із програмами, встановленими у файлах програм .
Тому я здогадуюсь, що причина в тому, що «програми у Windows розроблені для того, щоб жити в одному місці, їх спільні залежності в іншому, а конкретні дані користувача в іншому», що в значній мірі працює проти концепції копіювання одного місця.
.. і це ще до того, як вам доведеться налаштувати облікові записи користувачів, налаштувати та забезпечити дозволи безпеки, завантажити оновлення та встановити служби Windows ...
xcopy - це "простий випадок" і, звичайно, не найкраще підходить для всього.