Ok, ich komme hier als letzte Rettung, in der Hoffnung, dass jemand die Antwort darauf kennt, keine Antworten in den Newsgroups und ich habe alles getan, was ich weiß, abgesehen von einer ernsthaften Hacklösung, die ich gerne vermeiden würde.
Hier ist die Situation:
Ich habe eine .NET-Klassenbibliothek, die COM-exponiert ist. Ich verpacke dies in eine CAB-Datei und verwende das Object-Tag, um es in der Seite einzubetten. Auf dem CODEBASE-Attribut zeige ich auf die Cab-Datei und füge eine Version hinzu, wie zum Beispiel "CODEBASE="cabfiles\mycab.cab#version=30.0.0.1"
Das Problem:
Weil dies eine .NET-DLL ist, die für COM freigegeben ist, registriert sie das mit einem InprocServer32-Registrierungsschlüssel, der auf mscoree.dll mit der Version 2.0.50727 verweist, was Sinn macht, da .NET COM-Objekte unter diesem Prozess ausgeführt werden und 2.0.50727 die Version dieser DLL ist. Aber dies bricht das Versionsattribut des CODEBASE-Attributs im OBJECT-Tag.
Jede Version, die ich größer als 2.0.50727 setze, lädt die Inhalte der Cab-Datei erneut herunter und installiert sie.
Ich habe versucht, die Registrierungseinstellungen und -werte zu ändern und eine ganze Reihe von Dingen ausprobiert, aber ich kann die Lösung nicht finden.
Weiß also jemand eine Lösung für dieses Problem?