Laden...

XCopy Deployment + "Installation"

Erstellt von Tankian vor 18 Jahren Letzter Beitrag vor 18 Jahren 4.558 Views
T
Tankian Themenstarter:in
81 Beiträge seit 2004
vor 18 Jahren
XCopy Deployment + "Installation"

Hallo,

und zwar dreht sich meine Frage eben um XCopy Deployment.
Wie wird dabei eine Art Installation, bzw. Deinstallation durchgeführt?

Nehmen wir zum Beispiel an, dass meiner Anwendung spezielle Dateitypen zugewiesen werden sollen, oder das meine
Anwendung im ContextMenu des Explorers auftauchen soll, etc.. eben alles typischer Beispiele für einen Registry-Eintrag.

Da man ein Programm nun nur noch kopieren muss, müsste man sich dann halt beim ersten Aufruf des Programms selbst um die
Einträge kümmern, soweit kein Problem. Aber was ist beim Löschen? Es wird ja angepriesen, dass man nur noch das Verzeichniss
löschen muss und die Anwendung ist deinstalliert? Wo nehme ich da die Registry-Einträge wieder raus?

Mir ist natürlich sehr wohl bewusst, dass man die Registry nicht mehr benutzen soll, aber gibt es überhaupt einen
vollwertigen Ersatz? Meine Frage dreht sich aber nicht nur im Speziellen um die Registry, könnte genauso gut ein
Dienst sein, den das Programm mit sich bringt.

Wie wird sowas also verwirklicht?

grüße

210 Beiträge seit 2005
vor 18 Jahren

Pack dein Programm doch einfach in einen Installer, der alle nötigen Sachen bei der Installation anlegt und bei Deinstallation auch wieder entfernt.

Blog

Portable WebDAV Library

Windows Server Advanced Power Management
Erweitertes Energie-Management unter Windows

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo exec,

habe es selbst noch nicht gelesen (bin müde und gehe jetzt schlafen), aber klingt ganz spannend:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/xcopywininst.asp

herbivore

S
8.746 Beiträge seit 2005
vor 18 Jahren

Xcopy-Deployment ist nicht wirklich eine "Installationsmethode" für den Kunden sondern nur die Eigenschaft der Anwendung, von jedem beliebigen Ort (lokal) ausgeführt werden zu können. Der Name kommt vom Xcopy (dem alten DOS-Programm), mit dem man rekursiv ein komplettes Verzeichnis kopieren kann. Kann man eine Anwendung einfach kopieren und sie läuft immer noch, dann hast du "Xcopy-Deployment" gemacht.

Microsoft verwendet den Begriff noch für die "Installation" von ASP-Assemblies in den IIS. Die Assemblies werden da einfach ein ein virtuelles Verzeichnis einkopiert und fertig.

In der Praxis wird man immer einen Installer verwenden wenn die Software an den Kunden ausgeliefert werden soll.

Für die Entwicklung und den Test hat Xcopy-Deployment aber große Vorteile.

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo zusammen,

so jetzt habe ich den Artikel gelesen. Gut der ist hauptsächlich für den IIS, aber für meine Begriffe sagt MS: XCOPY Deployment geht und es ist auch toll, dass es geht, aber für jedes Projekt, das größer ist als Hello-World, braucht man einen Installer, so wie es svenson schon geschrieben hat.

Auf das Deinstallieren mit DEL geht der Artikel konsequenterweise auch gar nicht mehr ein.

Die einzige Zwischenlösung, die ich sehe, ist dass das Programm beim ersten Start nicht nur alles einrichtet, sondern dass es auch einen Kommanozeilenparameter --uninstall kennt und dann alle Einrichtungen wieder rückgängig macht.

Das Programm kann für den einfachen Aufruf mit --uninstall eine entsprechende Verknüpfung im Startmenü anlegen oder einen Eintrag unter Start/Systemsteuerung/Software.

herbivore

S
8.746 Beiträge seit 2005
vor 18 Jahren

Ich kann nur empfehlen, Anwendung Xcopy-tauglich zu machen, wenn immer es möglich ist. Meist sind es ja nur bestimmte Design-Entscheidungen (.xml-Konfig-Files anstelle der Registry, nur Pfade relativ zum Ausführungsverzeichnis, etc.).

Gerade wenn man versucht Anwendungen in Testumgebungen zu integrieren, wird eine erzwungene Installation zur Würgerei. Es ist auch sehr angenehm, viele Versionen einer Anwendung parallel auf einer Maschine haben zu können, ohne dass die sich gegenseitig ins Gehege kommen.

Aber das hat wie gesagt nichts damit zu tun, wie die Anwendung zu Kunden gelangt.

M
456 Beiträge seit 2004
vor 18 Jahren

XCopy Deployment ist eine Illusion.
Wenn du größere Anwendungen schreibst, musst du oft Einträge ins Startmenü vornehmen, Configfiles im Homeverzeichnis des Anwenders installieren (aus gewissen Gründen sollte man die eben nicht ins Anwendungsverzeichnis speichern), Assemblies in den GAC schieben, Dateiendungen registrieren, usw.
Mit einer reinen "XCopy Anwendung" ist so was unmöglich.
XCopy Deployment ist ein Buzzword mit dem man gut Bullshitbingo spielen kann, mit der Realität hat das oft wenig zu tun 😉

I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.

S
8.746 Beiträge seit 2005
vor 18 Jahren

Nur weil es nicht _immer _möglich oder wünschenswert ist, heisst es nicht, dass es nicht sinnvoll ist. Nicht gleich das Kind mit dem Bade ausschütten. Es gibt diverse Aspekte in der Entwicklung (!), in denen Xcopy-Fähigkeit (Deployment ist hier ein Wort, welches nur im ASP.NET-Kontext Sinn macht) durchaus sehr praktisch ist. Auch bei Smart-Client braucht man im Prinzip Xcopy.

1.549 Beiträge seit 2004
vor 18 Jahren

Natürlich ist es nicht immer möglich aber wie schon erwähnt beim testen und entwickeln kann es sehr große vorteile haben. Ich würde im oben beschrieben fall empfehlen die einträge beim start zu machen und zum deinstallieren ein kleines Programm das im Anwendungsdaten Ordner liegt zu registrieren.

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

B
119 Beiträge seit 2005
vor 18 Jahren

Original von herbivore:
Die einzige Zwischenlösung, die ich sehe, ist dass das Programm beim ersten Start nicht nur alles einrichtet, sondern dass es auch einen Kommanozeilenparameter --uninstall kennt und dann alle Einrichtungen wieder rückgängig macht.

Das Programm kann für den einfachen Aufruf mit --uninstall eine entsprechende Verknüpfung im Startmenü anlegen oder einen Eintrag unter Start/Systemsteuerung/Software.

Hallo,

die Lösung gefällt mir ziemlich ziemlich gut, nur widerspricht sich das dem Ratschlag aus dem Artikel
'Upgrading to Microsoft .NET'. Wirkt aber wie eine relativ simple Lösung, warum wird also davon abgeraten?

Bzw. hat man mit dem Windows Installer die Möglichkeit es so zu konfigurieren,
dass auch Benutzer ohne Adminrechte das Programm installieren können?

grüße

edit:
Hm, habs mittlerweile selbst auch erkannt. Passt eben nicht ins "XCopy" Konzept, wenn man die Programme
dann doch wieder nur über den Software Dialog entfernen kann.

M
456 Beiträge seit 2004
vor 18 Jahren

Für Tests und kleine Tools mag das alles gehen aber bei den meisten größeren Anwendungen funktioniert simples XCopy Deployment eben nicht.
Außerdem bezog sich Tankian nicht speziell auf ASP.NET, sondern auf die Installation von Anwendungen auf dem lokalem Rechner.
Das wurde mal anfänglich von MS im Zusammenhang mit .NET vollmundig propagiert:

Anwendung einfach kopieren und schon läuft alles problemlos. Keine Seiteneffekte zwischen Anwendungen, keine Dateileichen oder Vermüllung der Registrierung.

Übrig geblieben ist nicht viel. .NET Anwendungen sind nicht viel besser für XCopy Deployment geeignet als andere nativ in C/C++, Delphi, ... geschriebene Anwendungen.

I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.

1.549 Beiträge seit 2004
vor 18 Jahren

Mir ist gerade noch ein Grund eingefallen warum man Anwendungen XCopy fähig machen sollte:
Wenn man z.B auf Reisen ist kann man die Anwendung auf einem USB Stick mitführen und sie in Internet Cafes einsetzen zu den Gründen: Wie in der Aktuellen Ausgabe von TR nachzulesen ist wird die Sicherheit von auf Internet Cafe Rechner installierten Programmen als mangelhaft eingestuft

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

S
8.746 Beiträge seit 2005
vor 18 Jahren

Ich mach meine Systeme wenns geht Xcopy und baue dann nen simplem Content-Installer damits schick aussieht und ich Konfig- und User-Daten vom Update ausschliessen kann. User lieben es auch, wenn sie auf "Weiter" und "Fertig"-Buttons drücken dürfen. So ein Self-Extracting Zip will keiner sehen. Wirkt einfach zu unprofessionell.

Für Modultests und GUI-Tests checke ich einfach aus dem Konfig-System in den Testpfad meines Testsystems aus. Da ist es praktisch wenn die SW einfach ohne Vorbereitung der Registry durch einen Installer oder ähnlichen (manchmal sicher notwendigen) Quatsch läuft. Xcopy in Anwendung. Man braucht auch keine Cleaner-Tools, Backups oder ähnliches.