更新:我已经构建了一个没有代码的WPF应用程序,只需放入一个TextBox和一个按钮并构建它。运行此应用程序时,我可以在此用户的计算机中看到相同的错误。您可以单击该按钮,它可以正常工作,但只要您按下键盘上的某个键,应用程序就会抛出相同的错误。我应该重新安装.Net Framework吗?还有其他建议吗?
原始问题: 我在企业环境中通过ClickOnce分发了WPF应用程序。数十名用户正在运行我的应用程序而没有问题。但是,有1个用户无法运行该应用程序。如果我在他的机器中登录,我也会收到错误。发生任何异常时,用户的错误是标准错误消息。所以我需要远程调试它。
程序加载没有问题,只要TextBox失去焦点或用户按下某个键,它就会将焦点放在TextBox上,程序崩溃。
我已经将我的visual studio连接到我在有问题的机器上运行的应用程序,并设法捕获以下堆栈跟踪。
“在MS.Win32.UnsafeNativeMethods.ITfKeystrokeMgr.TestKeyUp(Int32 wParam,Int32 lParam,Boolean& eaten) 在System.Windows.Input.TextServicesContext.Keystroke(Int32 wParam,Int32 lParam,KeyOp op) 在System.Windows.Input.TextServicesManager.TextServicesKeystroke(TextServicesContext context,KeyEventArgs keyArgs,Boolean test) 在System.Windows.Input.TextServicesManager.PreProcessInput(Object sender,PreProcessInputEventArgs e) System.Windows.InputManager.InputManager.ProcessInput(InputEventArgs输入)中的System.Windows.Input.InputManager.ProcessStagingArea()\ r \ n 在System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport) at System.Windows.Interop.HwndKeyboardInputProvider.ReportInput(IntPtr hwnd,InputMode mode,Int32 timestamp,RawKeyboardActions actions,Int32 scanCode,Boolean isExtendedKey,Boolean isSystemKey,Int32 virtualKey) 在System.Windows.Interop.HwndKeyboardInputProvider.ProcessKeyAction(MSG& msg,布尔和处理) 在System.Windows.Interop.HwndSource.CriticalTranslateAccelerator(MSG& msg,ModifierKeys修饰符) 在System.Windows.Interop.HwndSource.OnPreprocessMessage(Object param) 在System.Windows.Threading.ExceptionWrapper.InternalRealCall(委托回调,对象args,布尔isSingleParameter) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source,Delegate callback,Object args,Boolean isSingleParameter,Delegate catchHandler) 在System.Windows.Threading.Dispatcher.WrappedInvoke(委托回调,Object args,Boolean isSingleParameter,Delegate catchHandler) 在System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority,TimeSpan timeout,Delegate方法,Object args,Boolean isSingleParameter) 在System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority,Delegate方法,Object arg) 在System.Windows.Interop.HwndSource.OnPreprocessMessageThunk(MSG& msg,布尔和处理) 在System.Windows.Interop.HwndSource.WeakEventPreprocessMessage.OnPreprocessMessage(MSG& msg,布尔和处理) 在System.Windows.Interop.ComponentDispatcherThread.RaiseThreadMessage(MSG& msg) 在System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame框架) 在System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame框架) 在System.Windows.Threading.Dispatcher.Run() 在System.Windows.Application.RunDispatcher(Object ignore) 在System.Windows.Application.RunInternal(窗口窗口) 在System.Windows.Application.Run(窗口窗口) 在System.Windows.Application.Run() 在TIS.SamSeek.WpfClient.App.Main()“
我得到一个System.Argument异常,其描述为:“值不在预期范围内。”。
InnerException:null
来源:WindowsBase
TargetSite:{Void TestKeyUp(Int32,Int32,Boolean ByRef)}
DeclaringType:{Name =“ITfKeystrokeMgr”FullName =“MS.Win32.UnsafeNativeMethods + ITfKeystrokeMgr”}
汇编:{WindowsBase,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35}
声明方法:'((System.Type)(((System.Reflection.MemberInfo)(((System.Exception)($ exception))。TargetSite))。DeclaringType))。DeclaringMethod'抛出类型为'System'的异常。出现InvalidOperationException“
消息:“只能在Type.IsGenericParameter为true的Type上调用方法。”
来源:“mscorlib”
我在代码中添加了各种跟踪,我很确定我的代码不会直接导致此异常。我的代码中没有任何KeyUp事件。
你有什么建议?
非常感谢
答案 0 :(得分:1)
My Psychic Debugger表示这与平板电脑输入服务有关。 Office倾向于安装它的奇怪版本,这会导致问题。它是什么版本的Windows?
答案 1 :(得分:0)