Hi,
das wichtigste vorweg:
Ich will hier keine Diskussion über .NET und Microsoft und deren Vor- und Nachteile. Ich weiß, dass ich die COM-Anbindung über entsprechende Tools vermeiden kann, das steht aber derzeit nicht zur Debatte, vor allem behebt das meine Probleme mit dem .NET Framework nicht.
ich habe hier eine Delphi-Applikation die über COM auf .NET Assemblies zugreift, die Assemblies wiederum greifen auf eine Access-DB zu. Die Installation erfolgt in 2 Stufen: Die eigentliche Anwendung wird mit Inno installiert (ein über die Jahre gewachsenes Script), die Assemblies mit einem WiX-Script. Das installiert die Assemlies im GAC und führt die COM-Registrierung durch.
Das System läuft jetzt schon seit über 9 Monaten (vorher wurde die GAC-Installation/COM Registrierung über eine Batch mit gacutil und regAsm erledigt). Am Anfang war "alles" wunderbar, in den letzten 3 Monaten (gefühlt: Seit Windows XP ServicePack 3 vermehrt installiert wird) häufen
sich allerdings die Probleme:
1. defekte Installationen von .NET: Schon öfters passiert: es fehlt halt mal ne Datei (sorttbls.nlp) vom .NET Framework (ich nutze das .NET 2.0 Redistributable). Hilfe (
social.msdn.microsof...-804b-77ef77cefaf2/) die ich
im Netz gefunden habe: Das .NET Framework reparieren, anschließend gehts wieder. Dumm wenn das .NET 3.5 schon installiert ist...
2. defekte Installation von .NET: Das MSI bricht mit einer Fehlermeldung ab, und zwar ganz heftig. Eine Reparatur mit dem MSI-Installer führt auch zu nichts - schließlich installiert man das .NET Framework Redistributable 2.0 neu und siehe da, MSI geht wieder. Anmerkung vom Kunden: Eine Installation einer anderen Software ist bei der Registrierung einer ActivX-Komponente hängen geblieben und hat vermutlich das System beeinträchtigt.
3. MDAC: Manchmal gehts, manchmal gehts auch nicht. Reparieren kann man bei XP Prof. sowieso nichts. Dumm auch: Seit Windows XP SP3 kann es vorkommen, dass die Initialisierung der Datenbankverbindung (also ein einfaches Connect) locker 2-10 Minuten dauern kann (auf eine lokale Access-DB).
Wer ganz viel Pech hat: an einem Tag funktioniert die Datenbankanbindung, schon am nächsten Tag (angeblich ohne dass was am System gemacht wurde - kann ich aber nicht nachprüfen) kommt schon bei einer einfachen ADO-Anwendung (eine Connection auf eine DB, eine QUery und über ein DataSource ein DBGrid angebunden) beim Start (die Datenbankverbindung wird erst bei einem ButtonClick aufgebaut) die Fehlermeldung, man möge doch die MDAC in Version 2.1 oder höher installieren, obwohl die Versionsnummer der DLL zur Betriebssystemversion passt (also bei XP3 irgend was mit 2.81.xxx).
Dumm, dass bei Windows XP Prof. die Version 2.80 grundsätzlich drauf ist, die mit SP2, SP3 und .NET Framework 3.5, das Microsoft-sei-Dank auch schon über die Auto- Updatefunktion über all verteilt ist, auch noch jedesmal in der Version geändert wird. Eine Reparatur ist zwar möglich, zumindest behauptet das einen Seite im Netz, doch die ist manuell vorzunehmen, d.h. Dateien auf dem System zusammensuchen usw. manuelle Registrierungen ausführen usw.
Bin ich denn der einzigste auf der Welt mit den Problemen? mach ich was grundsätzlich falsch? Soll ich einen anderen Installer nehmen (IS, InstallAware,....) ? Reparieren die kommerziellen Installer womöglich defekte installationen von .NET/MDAC ohne dass ich davon je was mitbekommen habe? Hatte jemand die oben aufgeführten Probleme schon mal und kennt einen Tipp wie ich diese umgehen/beheben kann? Oder ist das jetzt halt so und damit "tägliches Brot" für den Support?
Grüße
Lemmy