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.
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.
Ich habe die folgende case-Anweisung in meinem Code:
status = case(
(
orders.c.item_delivered.is_(True),
OrderStatus.DELIVERED.value,
),
(
orders.c.order_processing_status ==...
Ich habe die folgende case-Anweisung in meinem Code:
status = case(
(
orders.c.item_delivered.is_(True),
OrderStatus.DELIVERED.value,
),
(
orders.c.order_processing_status ==...
Wenn ich versuche, ein neues Maui -Projekt unten auszuführen, wird der Fehler angezeigt. Kann mir jemand helfen, dieses Problem zu lösen? Ich ticke die Bereitstellung und erstellung im...
Frage 1:
Hallo, ich würde gerne wissen, ob es eine Möglichkeit gibt, das Objekt von DispatcherTimer zu entsorgen oder zu töten und ein neues Objekt mit demselben Namen zu erstellen?