Gli installatori sono il risultato di anni di evoluzione e un po 'di storia (semplificata) aiuta a capire perché fanno ciò che fanno ..
Il modello di Windows 3.1 ha suggerito file di configurazione in stile config.ini per applicazione con il supporto di librerie condivise che vanno nelle cartelle di sistema per impedire la duplicazione e lo spreco di spazio su disco.
Windows 95 ha introdotto il registro che consente un archivio centrale per la configurazione dell'applicazione che sostituisce molti file di configurazione. Ancora più importante, la configurazione di Windows è stata memorizzata nello stesso posto.
Il registro è diventato gonfio a causa delle applicazioni che non si sono ripulite dopo se stesse. L'inferno delle DLL è accaduto a seguito di più versioni delle stesse librerie condivise che si sovrascrivono.
.NET ha introdotto il concetto di app.config (quasi ini file mark 2, questa volta con un po 'più di struttura che consente agli sviluppatori di perdere tempo a scrivere parser manuali). Il GAC è stato introdotto nella versione degli assembly condivisi nel tentativo di prevenire l'inferno DLL.
In Windows XP e Moreso in Vista, Microsoft ha tentato di definire lo spazio utente come luogo in cui archiviare i dati utente e i file di configurazione in un'unica posizione standard per consentire profili in roaming e una facile migrazione (basta copiare il profilo) con le applicazioni installate in Programmi .
Quindi immagino che la ragione sia che "le applicazioni in Windows sono progettate per vivere in un posto, le loro dipendenze condivise in un altro e i dati specifici dell'utente in un altro", il che funziona praticamente contro il concetto di xcopiare una singola posizione.
.. ed è prima che tu debba configurare gli account utente e configurare e garantire le autorizzazioni di sicurezza, scaricare gli aggiornamenti e installare i servizi di Windows ...
xcopy è il "caso semplice" e certamente non è la soluzione migliore per tutto.