Anpassungen für unterschiedliche Kunden

Fragen zum AKInstallerMSI
Soernt
Beiträge: 28
Registriert: 22.03.2011, 08:01

Re: Anpassungen für unterschiedliche Kunden

Beitrag von Soernt »

Hallo Herr Kapust,

die Projektdatei ist angehängt.

Mit freundlichen Grüßen
Sörnt Poppe
Dateianhänge
InstallerClassDemo.zip
(31.53 KiB) 678-mal heruntergeladen
Andreas Kapust
Administrator
Beiträge: 1083
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Re: Anpassungen für unterschiedliche Kunden

Beitrag von Andreas Kapust »

Bitte nächstes mal per Mail schicken.
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
Andreas Kapust
Administrator
Beiträge: 1083
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Re: Anpassungen für unterschiedliche Kunden

Beitrag von Andreas Kapust »

Guten Abend!

Das angehängte Projekt lässt sich nach dem Anpassen der Pfade unter XP SP3 und Win7 ohne Fehler de/installieren.
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
Soernt
Beiträge: 28
Registriert: 22.03.2011, 08:01

Re: Anpassungen für unterschiedliche Kunden

Beitrag von Soernt »

Hallo Herr Kapust,

Wären Sie bitte so nett mit zu sagen welchen Pfad Sie angapasst haben?

Mit freundlichen Grüßen
Sörnt Poppe
Soernt
Beiträge: 28
Registriert: 22.03.2011, 08:01

Re: Anpassungen für unterschiedliche Kunden

Beitrag von Soernt »

Hallo Herr Kapust,

ich komme nicht recht weiter mit der .Net Installer Klasse.

Ich habe eine VMWare mit Windows 7 64 Bit aufgesetz. Installiert ist einzig der AKInstaller.
Ich versuche das Demo-Projekt für die .Net Installer Klasse zu Laufen zu bekommen mit unterschiedlichem Erfolg.

Ich frage mich ob Sie das Demo-Projekt auf einem 64Bit System ausprobiert haben?

1. Nachdem Erstellen des Setups ohne Änderungen kann das erstellte MSI nicht fehlerfrei installiert werden (nicht gut für ein Demo-Projekt).

2. Ich habe den PaketTyp von 32-Bit auf 64-Bit umgestellt. Gleiches Ergebnis.

3. Ich bin über Projekt->Erstellungsverzeichnis->Admin-Konsole auf die Konsole gewechsel und habe von dort das Setup.msi gestartet. Siehe da ich sehe die Ausgaben der Installer Klasse! *Super :-)* Was mir jetzt aufgefallen ist: Im Fenstertitel steht "Administrator: C:\Windows\System32\cmd.exe". Der Setup-Prozess scheint im 32Bit Modus gestartet worden zu sein. Kann es sein, das die vordefinierten Ausführungsbedinungen der Custom Action nicht so funktionieren wie gedacht?


Mit freundlichen Grüßen
Sörnt Poppe
Soernt
Beiträge: 28
Registriert: 22.03.2011, 08:01

Re: Anpassungen für unterschiedliche Kunden

Beitrag von Soernt »

Um nochmal zu verdeutlichen was ich als Beispiel brauche:

Ein Mixed-Mode Setup das eine .Net Installer Klasse verwendet. Das Setup muss sowohl unter 32Bit und 64Bit Windows fehlerfrei funktionieren.
Hinsichlich der Ausspaltung der Ausgabe in 2 MSI-Dateien (je 32/64Bit), sollte auch die Kombination aus 32Bit MSI auf 64Bit Windows funktionieren.
Ein solches Beispiel wäre wirklich hilfreich für mich! :-)

Mit freundlichen Grüßen
Sörnt Poppe
Andreas Kapust
Administrator
Beiträge: 1083
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Re: Anpassungen für unterschiedliche Kunden

Beitrag von Andreas Kapust »

Guten Tag!

Die Demo lässt sich ohne Probleme erstellen und ausführen. Soll die Demo als 64 Bit laufen, muss die Ausgabe des Assemblies natürlich auf MSIL oder 64 Bit statt auf 32 Bit stehen.

Anbei finden Sie die geänderte Demo, welche in 32 und 64 Bit aufgespalten wurde (für alle die keine MixModes erstellen können) und ein 32 und 64 Bit MSI enthält.

Und selbstverständlich wurde die InstallerClass mit 64 Bit getestet. Die Demo war nur für 32 Bit ausgelegt um auch für Benutzer mit 32 Bit OS anwendbar zu sein.
Dateianhänge
DoNetInstallerClass.zip
(310.53 KiB) 689-mal heruntergeladen
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
Soernt
Beiträge: 28
Registriert: 22.03.2011, 08:01

Re: Anpassungen für unterschiedliche Kunden

Beitrag von Soernt »

Hallo,

Ich habe mich gerade wieder mit dem Thema .NET Installer-Klasse beschäftigt.
Ich experimentiere mit Ihrem Beispiel aus dem letzten Post.

Die .exe Assembly mit der Installer-Klasse wird im Temp-Verzeichnis abgelegt. Nach erfolgreicher Installation und Deinstallation ist sie weiterhin im Temp-Verzeichnis vorhanden.
Testhalber habe ich die Versionsnummer der Assembly erhöht und das Setup neu erstellt. Die Assembly im Temp-Verzeichnis wird nicht durch die neuere ersetzt.

Wenn ich nun nach einer Installation die Datei lösche und nun deinstalliere wird die korrekte (neue Version) während des Deinstallationsvorgangs in das Temp-Verzeichnis kopiert.

Könnte der AK-Installer dafür sorgen, das nach der Installation/Deinstallation die Datei aus dem Temp-Verzeichnis gelöscht wird? Das wird ansonsten wird das früher oder später zu einem Problem führen.

Gruß
Sörnt Poppe
Andreas Kapust
Administrator
Beiträge: 1083
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Re: Anpassungen für unterschiedliche Kunden

Beitrag von Andreas Kapust »

Guten Tag!

Zum Zeitpunkt des Entfernens der Datei per (Temporäre Dateien) ist die Datei noch in Gebrauch und kann deshalb nicht gelöscht werden.

Ich setzte diese Problem auf die ToDo-Liste für das nächste Update.
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
Soernt
Beiträge: 28
Registriert: 22.03.2011, 08:01

Re: Anpassungen für unterschiedliche Kunden

Beitrag von Soernt »

Mir sind zwei Dinge aufgefallen:

1. In der C# Solution steht als "Solution Plattform" "x86" während das Projekt für die Plattform als "AnyCPU" gekennzeichnet ist. Das ist verwirrend.
2. In Ihrem Beispiel stehen folgende Ausführungsbedingungen:
bei Install = "Not Installed"
bei Uninstall ="(REMOVE AND UPGRADINGPRODUCTCODE="")"
Der Assistent für ".Net Installer Klassen" legt diese Bedinungen nicht an.
Wäre gut wenn er das gleich mit erledigen würde.

Gruß
Sörnt Poppe
Andreas Kapust
Administrator
Beiträge: 1083
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Re: Anpassungen für unterschiedliche Kunden

Beitrag von Andreas Kapust »

Guten Tag!

Stimmt, der Assistent legt die CA allgemein an, so dass diese beim Install, Rollback, Commit oder Uninstall aufgerufen wird.

Eine Ausführung allein auf die Erstinstallation festzulegen, ist nicht immer gewünscht. Gleiches gilt für die Deinstallation.
Hierbei bleibt ein Update möglicherweise von der CA unberücksichtigt.
Der Setup-Ersteller muss also im Bedarfsfall die CA nach eigenen Vorgaben einschränken.

Eine Erweiterung des Assistenten, die ein Bedingungen-Auswahlfeld enthält wäre aber natürlich machbar. :-)
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
Soernt
Beiträge: 28
Registriert: 22.03.2011, 08:01

Re: Anpassungen für unterschiedliche Kunden

Beitrag von Soernt »

Arrrr, könnten Sie bitte ein Prüfung beim Erstellen des Setups einbauen, die darauf hinweist, das die Installer-Klasse public sein muss.
Das hat mich heute Nerven gekostet :-(
Andreas Kapust
Administrator
Beiträge: 1083
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Re: Anpassungen für unterschiedliche Kunden

Beitrag von Andreas Kapust »

Guten Tag!

Die Definition ist in der Demo und der Anleitung als
public partial class InstallerClass : System.Configuration.Install.Installer
deklariert.

Das Assembly auszulesen um zu Prüfen ob die Funktion in den Type Definitions korrekt anlegt wurde, ist etwas viel Aufwand oder?

Ich setzte es mal auf die ToDo-Liste. Ob es wirklich eingebaut wird oder nicht kann ich aber nicht sagen.
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
Antworten