【问题标题】:Visual Studio 2015 Isolated Shell application crashing when docking Tool window after update to MS KB4601050更新到 MS KB4601050 后停靠工具窗口时,Visual Studio 2015 隔离 Shell 应用程序崩溃
【发布时间】:2021-05-16 13:48:32
【问题描述】:

我们有一个使用 .NET 4.8 和 Visual Studio 2015 Shell(隔离)开发的应用程序。现在,每当更新到 KB4601050 后停靠工具窗口时,此应用程序就会崩溃。

我已尝试按照知识库文章中的说明将开关添加到 app.config 文件中,但没有效果。

<configuration>
   <runtime>
      <AppContextSwitchOverrides value="Switch.System.Windows.Interop.MouseInput.OptOutOfMoveToChromedWindowFix=true; Switch.System.Windows.Interop.MouseInput.DoNotOptOutOfMoveToChromedWindowFix=true" />
   </runtime>
</configuration>

我有什么办法可以补救这种情况?

应用程序:xxxxx.exe 框架版本:v4.0.30319 说明:进程因未处理的异常而终止。 异常信息:System.NullReferenceException 在 System.Windows.Interop.HwndMouseInputProvider.HasCustomChrome(System.Windows.Interop.HwndSource,RECT ByRef) 在 System.Windows.Interop.HwndMouseInputProvider.GetEffectiveClientRect(IntPtr) 在 System.Windows.Interop.HwndMouseInputProvider.PossiblyDeactivate(IntPtr,布尔值) 在 System.Windows.Interop.HwndMouseInputProvider.Dispose() 在 System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr,MS.Internal.Interop.WindowMessage,IntPtr,IntPtr,布尔 ByRef) 在 System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr,Int32,IntPtr,IntPtr,布尔 ByRef) 在 MS.Win32.HwndWrapper.WndProc(IntPtr,Int32,IntPtr,IntPtr,布尔 ByRef) 在 MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) 在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate,System.Object,Int32) 在 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object,System.Delegate,System.Object,Int32,System.Delegate) 在 System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority,System.TimeSpan,System.Delegate,System.Object,Int32) 在 MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)

【问题讨论】:

  • 你能试试这个变通方法来检查它是否有效吗?使用标题“库消费者的 AppContext”下的 AppContext 类(系统)中描述的方法之一设置两个 AppContext 开关。详情请参考here
  • 我能够通过设置注册表项来使其工作。将开关添加到应用程序,配置文件不起作用。请注意,链接文章中注册表项的路径不正确。 Microsoft 和 .NETFramework 之间应该有一个斜线。

标签: .net wpf visual-studio windows-update


【解决方案1】:

虽然我无法通过将开关添加到 app.config 文件来解决问题,但将它们添加到注册表解决了问题。但是请注意,文章 https://docs.microsoft.com/en-us/dotnet/api/system.appcontext?view=netcore-3.1#remarks 中指出的注册表路径在 Microsoft 和 .NETFramework 之间缺少一个斜线。

【讨论】:

    【解决方案2】:

    我在使用 Visual Studio 2012 Express 时遇到了同样的问题。 我将您的&lt;AppContextSwitchOverrides&gt;-Tag 添加到WDExpress.exe.config 中的&lt;runtime&gt;-部分(而不是app.config,因为没有)在C:\Program文件 (x86)\Microsoft Visual Studio 11.0\Common7\IDE

    它就像一个魅力。

    【讨论】:

    • 我还将它添加到文件“VWDExpress.exe.config”(VS2012Express Web)中,它也可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多