为什么我的应用程序在启动时在另一台PC上崩溃?

时间:2017-01-30 16:28:57

标签: windows crash dependencies windows-10 windows-server-2008-r2

在我的开发盒(Window 10 Pro x64 v1607)上,我构建了一个.NET应用程序(VS Premium 2013 Update 5,Framework 4.5.1,平台目标:任何CPU),运行得很好。 (Microsoft.Expression.Interactions.dll(v 3.0.40218.0)和Ninject.dll(v.3.2.2.0)的dll依赖项与可执行文件位于同一目录中。)

但是,我在Windows Server 2008 R2 Std x64 SP1(终端服务器模式,本地管理员权限)上运行该应用程序,并且它在启动时崩溃(.exe和.dll在同一个目录中一起)。 Server 2008框安装了.NET Framework 4.5.2(由this method确定)。我收到以下问题签名:

Problem signature:
  Problem Event Name:   CLR20r3
  Problem Signature 01: MyApp.exe
  Problem Signature 02: 2.0.0.0
  Problem Signature 03: 588b6952
  Problem Signature 04: mscorlib
  Problem Signature 05: 4.0.30319.36373
  Problem Signature 06: 583fd726
  Problem Signature 07: 27cf
  Problem Signature 08: 0
  Problem Signature 09: System.Windows.Markup.XamlParse
  OS Version:   6.1.7601.2.1.0.16.7
  Locale ID:    1033
  Additional Information 1: 0a9e
  Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
  Additional Information 3: 0a9e
  Additional Information 4: 0a9e372d3b4ad19135b953a78882e789

此外,在Windows日志/应用程序中,我收到此.NET运行时错误:

Application: MyApp.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Windows.Markup.XamlParseException
Stack:
   at System.Windows.Markup.WpfXamlLoader.Load(System.Xaml.XamlReader, System.Xaml.IXamlObjectWriterFactory, Boolean, System.Object, System.Xaml.XamlObjectWriterSettings, System.Uri)
   at System.Windows.Markup.WpfXamlLoader.LoadBaml(System.Xaml.XamlReader, Boolean, System.Object, System.Xaml.Permissions.XamlAccessLevel, System.Uri)
   at System.Windows.Markup.XamlReader.LoadBaml(System.IO.Stream, System.Windows.Markup.ParserContext, System.Object, Boolean)
   at System.Windows.Application.LoadComponent(System.Object, System.Uri)
   at MyApp.MainWindow.InitializeComponent()
   at MyApp.MainWindow..ctor(MyApp.MainWindowVM)
   at DynamicClass.DynamicInjector73c5fe57e70845ecaa6b82291e882454(System.Object[])
   at Ninject.Activation.Providers.StandardProvider.Create(Ninject.Activation.IContext)
   at Ninject.Activation.Context.ResolveInternal(System.Object)
   at Ninject.Activation.Context.Resolve()
   at Ninject.KernelBase+<>c__DisplayClass15.<Resolve>b__f(Ninject.Planning.Bindings.IBinding)
   at System.Linq.Enumerable+WhereSelectEnumerableIterator`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
   at System.Linq.Enumerable+<CastIterator>d__b1`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
   at System.Linq.Enumerable.Single[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Collections.Generic.IEnumerable`1<System.__Canon>)
   at Ninject.ResolutionExtensions.Get[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](Ninject.Syntax.IResolutionRoot, Ninject.Parameters.IParameter[])
   at MyApp.App.OnStartup(System.Windows.StartupEventArgs)
   at System.Windows.Application.<.ctor>b__1(System.Object)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
   at System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunDispatcher(System.Object)
   at System.Windows.Application.RunInternal(System.Windows.Window)
   at System.Windows.Application.Run(System.Windows.Window)
   at System.Windows.Application.Run()
   at MyApp.App.Main()

我错过了一些dll吗?错误的DLL版本?谢谢你的任何指示。

1 个答案:

答案 0 :(得分:0)

System.Windows.Interactivity.dll的W10 PC上找到了丢失的dll:C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Windows.Interactivity\v4.0_4.5.0.0__31bf3856ad364e35。远程调试找到了歹徒!