System.Windows.Markup.XamlParseException - PullRequest
18 голосов
/ 11 июля 2011

Я написал приложение WPF, на моем компьютере оно работает нормально. Сейчас я пытаюсь развернуть приложение wpf на компьютере W7. И получаю следующее исключение:

Description: The process was terminated due to an unhandled exception.
Exception Info: System.Windows.Markup.XamlParseException
Stack:
   at System.Windows.Markup.XamlReader.RewrapException(System.Exception, System.Xaml.IXamlLineInfo, System.Uri)
   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.LoadBamlStreamWithSyncInfo(System.IO.Stream, System.Windows.Markup.ParserContext)
   at System.Windows.Application.LoadComponent(System.Uri, Boolean)
   at System.Windows.Application.DoStartup()
   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.runTryCode(System.Object)
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   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.InvokeImpl(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 CAMXSimulator.App.Main()

Есть идеи, что здесь не так?

Спасибо

Ответы [ 6 ]

9 голосов
/ 11 июля 2011

Этот тип исключения распространен, когда какая-то часть вашего главного окна конструктора или операции загрузки не выполняются. Если вы можете взять в руки трассировку стека, посмотрите на внутреннее исключение, и вы, вероятно, найдете настоящую проблему.

5 голосов
/ 03 октября 2013

У меня была эта проблема, потому что я показывал форму из конструктора приложений. Эта форма использовала Style = "{StaticResource XYZ}". Этот статический ресурс был определен в файле приложения XAML.

Я решил проблему, показав форму на более поздней стадии приложения, когда объект Application был полностью создан.

3 голосов
/ 22 марта 2015

У меня был такой же отчет об исключении.Я мог бы решить эту проблему с помощью программы windbg.

  • загрузить версию windbg x86 (не x64).
  • открыть .exe-файлприложение в нем (меню Файл -> открыть exe.)
  • выполните эти команды, чтобы увидеть реальное исключение:

После анализа я обнаружил, что сборка System.Net.Http.Formatting отсутствуетиз системы.

0:000> g
0:000> sxe clr
0:000> g
0:000> !loadby sos clr
0:000> !CLRStack
0:000> !PrintException

Exception type: System.IO.FileNotFoundException
Message: Could not load file or assembly 'System.Net.Http.Formatting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
    InnerException: <none>
0 голосов
/ 09 октября 2013

Убедитесь, что вы используете правильную архитектуру x86 или x64 при запуске на целевой машине. Я также сталкиваюсь с той же проблемой, приложение может работать на моем жестком диске FAT32, однако оно не удалось на другой машине с Windows 7 - 32-битной (я знаю, что Windows 7 с 32-битной довольно странно) см. http://social.msdn.microsoft.com/Forums/vstudio/en-US/8f803f28-dfda-4be5-9e8d-f7d82db95961/c-wpf-systemwindowsmarkupxamlparseexception?forum=wpf

0 голосов
/ 11 июля 2011

Я заметил похожее поведение при установке приложения ClickOnce на чистый компьютер. Я решил, установив требования приложения для установки .Net 4 и .Net 3.5 full.

Этого больше не было.

0 голосов
/ 11 июля 2011

Единственное, о чем я могу думать, это о том, есть ли на обоих компьютерах одна и та же версия .NETNET 4 имеет некоторые новые функции (парсер XAML), которых у 3.5 SP1 нет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...