Warum sind nicht alle Anwendungen portabel?
Es ist eine Frage, die jeden nervt, der sich in tragbare Apps verliebt: Warum nicht? alles tragbare Anwendungen?
Die heutige Question & Answer-Sitzung wird von SuperUser zur Verfügung gestellt - einer Unterteilung von Stack Exchange, einer Community-Gruppe von Q & A-Websites.
Die Frage
SuperUser-Leser Tom liebt die saubere Organisation tragbarer Apps und möchte wissen, warum nicht alles tragbar ist:
Ich habe vor kurzem versucht, Dinge auf meinem Windows-Computer viel weniger zu installieren (ich hasse Installationsprogramme - ich muss wissen, wo Programme Sachen ablegen ...) und wählte stattdessen tragbare oder eigenständige Versionen von Anwendungen.
Ich habe sie alle in einem 'Programme'-Verzeichnis auf einem Laufwerk separat von meiner Windows-Partition abgelegt. Wenn ich neu installiere, stehen mir alle Anwendungen mit minimalem Aufwand zur Verfügung, und auf der positiven Seite bekomme ich ein schönes, sauberes Setup.
Bei Anwendungen wie Office und Creative Suite muss ich immer noch einen schrecklich langen Installationsprozess durchlaufen, bei dem tausend zufällige Bibliotheken und Tools auf mein System geworfen werden.
Warum müssen Windows-Apps noch installiert werden? Warum können wir Photoshop nicht einfach in einen Ordner à la OSX ziehen und einfach funktionieren lassen? Konzentriert sich jemand auf tragbare Apps oder bin ich nur OCD über die ganze Sache?
Wir sind sicherlich Fans von portablen Apps und möchten auch den Dingen auf den Grund gehen.
Die Antwort
Der Superuser-Mitwirkende David Whitney bietet Einblick in die Gründe, warum viele Apps nicht portierbar sind und wie Windows eine Art Anti-Portabilitätsvereinbarung durchführt:
Installateure sind ein Ergebnis jahrelanger Entwicklung und ein wenig (vereinfachte) Geschichte hilft zu verstehen, warum sie das tun, was sie tun…
Das Windows 3.1-Modell schlug Konfigurationsdateien im Config.ini-Stil pro Anwendung vor, wobei gemeinsam genutzte Bibliotheken in Systemordner gestützt werden, um Doppelarbeit und unnötigen Speicherplatz zu vermeiden.
Mit Windows 95 wurde die Registrierung eingeführt, die einen zentralen Speicher für die Anwendungskonfiguration ermöglicht und viele Konfigurationsdateien ersetzt. Noch wichtiger ist, dass die Windows-Konfiguration an derselben Stelle gespeichert wurde.
Die Registrierung wurde aufgebläht, weil Anwendungen nicht nach sich selbst bereinigt wurden. DLL-Hölle ist das Ergebnis von mehreren Versionen derselben gemeinsam genutzten Bibliotheken, die sich überschreiben.
.NET hat das Konzept von app.config eingeführt (fast ini-Dateien markieren 2, diesmal mit etwas mehr Struktur, was den Entwicklern Zeit erspart, manuelle Parser zu schreiben). Das GAC wurde in Version Shared Assemblys eingeführt, um DLL Hell zu verhindern.
In Windows XP und Windows Vista versuchte Microsoft, den Benutzerbereich als Speicherort für die Speicherung von Benutzerdaten und Konfigurationsdateien an einem einzigen Standardspeicherort zu definieren, um Roaming-Profile und eine einfache Migration (einfach Kopieren Ihres Profils) mit den in Programmdateien installierten Anwendungen zu ermöglichen.
Ich denke, der Grund liegt darin, dass „Anwendungen in Windows an einem Ort leben, ihre gemeinsamen Abhängigkeiten an einem anderen und die benutzerspezifischen Daten an einem anderen“, was dem Konzept des Xcopys eines einzelnen Standorts ziemlich entgegensteht.
… Und das ist, bevor Sie Benutzerkonten konfigurieren, Sicherheitsberechtigungen einrichten und sicherstellen, Updates herunterladen und Windows-Dienste installieren müssen…
xcopy ist der „einfache Fall“ und sicherlich nicht für alles bestens geeignet.
Unglücklicherweise für Fans aller tragbaren Dinge bleiben viele Apps - insbesondere große Apps wie Office - fest im Betriebssystem verankert.
Haben Sie der Erklärung etwas hinzuzufügen? Ton aus in den Kommentaren. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Hier geht es zum vollständigen Diskussionsthread.