windows - Hvorfor kolliderer min app ved opstart på en anden pc?

Indlæg af Hanne Mølgaard Plasc

Problem



På min dev box (Window 10 Pro x64 v1607) har jeg bygget en .NET app (VS Premium 2013 Update 5, Framework 4.5.1, Platform target: Any CPU), som kører helt fint. (Der er dll afhængigheder af Microsoft.Expression.Interactions.dll (v 3.0.40218.0) og Ninject.dll (v. 3.2.2.0), som er i samme dir som den eksekverbare.)


Jeg går imidlertid til at køre appen på Windows Server 2008 R2 Std x64 SP1 (Terminal Server-tilstand, lokale Admin-tilladelser), og det krasjer ved opstart (.exe og over .dlls er sammen i samme dir). Server 2008-boksen har .NET Framework 4.5.2 installeret (bestemt af denne metode). Jeg får følgende Problem Signatur: [7]


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


Også i Windows Logs/Application får jeg denne .NET Runtime fejl:


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()


Mangler jeg nogle dll? Forkert dll version? Tak for nogle pointers.

Bedste reference


Fundet den manglende dll: System.Windows.Interactivity.dll, placeret på min W10 PC i C:WindowsMicrosoft.NETassemblyGAC\_MSILSystem.Windows.Interactivityv4.0\_4.5.0.0\_\_31bf3856ad364e35. Fjernfejlfinding fandt fejlen!