it-roy-ru.com

System.Windows.Markup.XamlParseException

Я написал приложение 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()

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

Спасибо 

18
user838557

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

9
A.R.

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

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

5
krosenvold

У меня был такой же отчет об исключении. Я мог бы решить это с помощью программы 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>
3
VahidN

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

0
yancyn

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

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

0
Mario Vernari

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

0
Bek Raupov