none
.NET Framework 4.7 и приложения WPF RRS feed

  • Вопрос

  • Добрый день!

    После установки .NET Framework 4.7 (автоматическое обновление), на компьютерах с сенсорными экранами (моноблоки hp) перестали работать WPF приложения. При этом, даже "пустой проект WPF" (под любую из версий Framework: 4.0, 4.6.2, 4.7) не запускается. При этом на компьютерах, где нет сенсорных экранов, все работает как и раньше (с установленной версией 4.7)

    Устройства ввода в диспетчере устройств отключал, драйвера удалял - не помогло.

    Отключал использования сенсорного ввода и пера - не помогло.

    Решается только удалением версии 4.7 и установкой старых версий .NET Framework (например, 4.0)

    Подскажите, есть ли способ заставить работать приложения на новой версии .NET Framework'а?

    Ошибка при запуске:

    run error Инициализатор типа "MS.Win32.Penimc.UnsafeNativeMethods" выдал исключение.
       в MS.Win32.Penimc.UnsafeNativeMethods.CreateResetEvent(IntPtr& handle)
       в System.Windows.Input.PenThreadWorker..ctor()
       в System.Windows.Input.PenThreadPool.GetPenThreadForPenContextHelper(PenContext penContext)
       в System.Windows.Input.StylusWisp.WispTabletDeviceCollection.UpdateTabletsImpl()
       в System.Windows.Input.StylusWisp.WispTabletDeviceCollection.UpdateTablets()
       в System.Windows.Input.StylusWisp.WispTabletDeviceCollection..ctor()
       в System.Windows.Input.StylusWisp.WispLogic.get_WispTabletDevices()
       в System.Windows.Input.StylusWisp.WispLogic.RegisterHwndForInput(InputManager inputManager, PresentationSource inputSource)
       в System.Windows.Interop.HwndStylusInputProvider..ctor(HwndSource source)
       в System.Windows.Interop.HwndSource.Initialize(HwndSourceParameters parameters)
       в System.Windows.Window.CreateSourceWindow(Boolean duringShow)
       в System.Windows.Window.ShowHelper(Object booleanBox)
       в System.Windows.Application.<>c.<RunInternal>b__105_0(Object obj)
       в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
       в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
       в System.Windows.Threading.DispatcherOperation.InvokeImpl()
       в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       в MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
       в System.Windows.Threading.DispatcherOperation.Invoke()
       в System.Windows.Threading.Dispatcher.ProcessQueue()
       в System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
       в MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
       в MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
       в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
       в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
       в System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
       в MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
       в MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
       в System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
       в System.Windows.Application.RunDispatcher(Object ignore)
       в System.Windows.Application.RunInternal(Window window)
       в WpfSimpleApp.App.Main(String[] args)
    15 июня 2017 г. 9:02

Ответы

  • Пробовали ставить его вручную после удаления?


    Сделаем содержимое сообщества лучше, вместе!

    • Помечено в качестве ответа ar_dev 16 июня 2017 г. 4:23
    15 июня 2017 г. 14:08
    Модератор
  • Попробуйте в конфигурацию добавить вот такое:

    <runtime>

    <AppContextSwitchOverrides value="Switch.System.Windows.Input.Stylus.DisableStylusAndTouchSupport=true" /> </runtime>


    • Помечено в качестве ответа ar_dev 16 июня 2017 г. 4:23
    15 июня 2017 г. 16:08

Все ответы

  • Пробовали ставить его вручную после удаления?


    Сделаем содержимое сообщества лучше, вместе!

    • Помечено в качестве ответа ar_dev 16 июня 2017 г. 4:23
    15 июня 2017 г. 14:08
    Модератор
  • Попробуйте в конфигурацию добавить вот такое:

    <runtime>

    <AppContextSwitchOverrides value="Switch.System.Windows.Input.Stylus.DisableStylusAndTouchSupport=true" /> </runtime>


    • Помечено в качестве ответа ar_dev 16 июня 2017 г. 4:23
    15 июня 2017 г. 16:08
  • Спасибо!

    Действительно, такая конфигурация приложения спасает положение, и на мой взгляд в качестве быстрого решения проблемы подходит больше.

    Только такое решение не поможет, если программа рассчитана как раз на сенсорный ввод :)

    • Изменено ar_dev 16 июня 2017 г. 4:26
    16 июня 2017 г. 4:25
  • Действительно, переустановка .NET Framework 4.7 помогла. Спасибо!
    16 июня 2017 г. 4:26