Das COM-Objekt im .NET 7-Projekt funktioniert nach der Konvertierung in .NET 8 nicht

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Das COM-Objekt im .NET 7-Projekt funktioniert nach der Konvertierung in .NET 8 nicht

by Guest » 22 Dec 2024, 21:52

Ich habe ein einfaches .NET 7-Konsolenprojekt, das auf eine COM-DLL verweist.

Der in .net7 ausgeführte Code bricht nach der Konvertierung in .NET 8 ab.
< Das p>COM-Objekt wurde erfolgreich erstellt. Marshal.IsComObject gibt „true“ für seine Instanz zurück.
Der Versuch, auf eine Eigenschaft zuzugreifen, löst jedoch eine AccessViolationException aus:
Es wurde versucht, geschützten Speicher zu lesen oder zu schreiben. Dies ist oft ein Hinweis darauf, dass anderer Speicher beschädigt ist.

Das Plattformziel des Projekts ist x86. STAThread wird angewendet.
Das Problem bleibt bestehen, auch wenn EmbedInteropTypes wahr oder falsch ist.
Was kann das Problem verursachen?
Jede Hilfe wäre dankbar.
Bearbeiten:
COM-DLL wird mit regsvr32 registriert.Der Code sieht wie folgt aus:
var obj = new InteropClass();
Console.WriteLine(obj.SomeProperty);//throws AccessViolationException

Wenn das Plattformziel x64 oder AnyCpu ist, wird eine ComException ausgelöst (80040154 Klasse nicht registriert)
Diese COM-DLL stammt von einem Drittanbieter. Party-Software und funktioniert wie erwartet in .net7 und früher.

Der Wechsel zu .net8 verursacht die Ausnahme.
Andere COM-Objekte funktionieren nach dem Upgrade großartig und ich frage mich Wenn es eine Einstellung gibt, um dieses Problem zu lösen Problem.

Top