{"id":1509,"date":"2023-12-12T18:04:00","date_gmt":"2023-12-12T17:04:00","guid":{"rendered":"http:\/\/blog.m-ri.de\/?p=1509"},"modified":"2023-12-19T09:19:14","modified_gmt":"2023-12-19T08:19:14","slug":"webview2-build-120-zerstoert-com-infrastruktur","status":"publish","type":"post","link":"http:\/\/blog.m-ri.de\/index.php\/2023\/12\/12\/webview2-build-120-zerstoert-com-infrastruktur\/","title":{"rendered":"WebView2 Build 120 zerst\u00f6rt COM-Infrastruktur"},"content":{"rendered":"\n<p>Wieder mal eine tolle Geschichte wie Kunden auf uns als Softwarehersteller sauer werden, weil Microsoft ein nicht funktionierendes Update ver\u00f6ffentlicht.<\/p>\n\n\n\n<p>Die Story:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wir nutzen intern COM f\u00fcr sehr viele Objekte, um unsere eigene Software via VB-Script zu steuern.<\/li>\n\n\n\n<li>Wir haben auch die M\u00f6glichkeit Controls vom Typ <em>WebView2<\/em> anzulegen.<\/li>\n\n\n\n<li>Am 07.12. ver\u00f6ffentlichte Microsoft f\u00fcr den <em>WebView2 <\/em>den Build 120.<\/li>\n\n\n\n<li>Unsere Software benutzt im Allgemeinen <em>\u201eEvergreen\u201c<\/em>, d.h. es wird immer die aktuelle <em>WebView2 <\/em>ohne eigne Installation benutzt.<\/li>\n<\/ul>\n\n\n\n<p>Effekt:<br>Seit dem Update kann man nach dem, ein <em>WebView2 <\/em>Fenster zerst\u00f6rt wurde, keine COM Class Factory in unserem Programm aufrufen.<br>Intern scheint das <em>WebView2 CoSuspendClassObjects <\/em>aufzurufen wenn das Control zerst\u00f6rt wird. Die Folge unser <em>IMessageFilter <\/em>springt an und es kommt ein Dialog, der auf einen nicht reagierenden COM Server hinweist. <\/p>\n\n\n\n<p>Der nicht reagierende COM-Server ist unsere eigene Anwendung\u2026 \ud83d\ude2f<\/p>\n\n\n\n<p>Toll! \ud83d\ude25<\/p>\n\n\n\n<p>Einziger f\u00fcr uns m\u00f6glicher Workaround f\u00fcr uns ist leider, die alte Version 119 auf jedem Client lokal zu installieren. Dann \u00fcber einen Registry Eintrag (<em>HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Edge\\WebView2\\BrowserExecutableFolder<\/em>) den Aufruf von der aktuellen Version umzubiegen.<br>Netterweise kann man das f\u00fcr jede Anwendung separat steuern.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/MicrosoftEdge\/WebView2Feedback\/issues\/4226\">Details zum Nachlesen auf GitHub<\/a>.<\/p>\n\n\n\n<p><strong>Nachtrag: Der Bug verschwand mit dem Update 120.0.2210.77<\/strong> <strong>in der evergreen Version.<\/strong> <strong>Bei mir wurde der Fix am Montag den 18.12.2023 automatisch installiert.<\/strong><br> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wieder mal eine tolle Geschichte wie Kunden auf uns als Softwarehersteller sauer werden, weil Microsoft ein nicht funktionierendes Update ver\u00f6ffentlicht. Die Story: Effekt:Seit dem Update kann man nach dem, ein WebView2 Fenster zerst\u00f6rt wurde, keine COM Class Factory in unserem Programm aufrufen.Intern scheint das WebView2 CoSuspendClassObjects aufzurufen wenn das Control zerst\u00f6rt wird. Die Folge unser &hellip; <a href=\"http:\/\/blog.m-ri.de\/index.php\/2023\/12\/12\/webview2-build-120-zerstoert-com-infrastruktur\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eWebView2 Build 120 zerst\u00f6rt COM-Infrastruktur\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[30,3,392,2],"tags":[],"class_list":["post-1509","post","type-post","status-publish","format-standard","hentry","category-c","category-programmieren","category-windows-10-programmieren","category-windows-api"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/1509","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/comments?post=1509"}],"version-history":[{"count":3,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/1509\/revisions"}],"predecessor-version":[{"id":1515,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/1509\/revisions\/1515"}],"wp:attachment":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/media?parent=1509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/categories?post=1509"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/tags?post=1509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}