XamlParseException in WPF application - but only on when installed on XP

两盒软妹~` 提交于 2019-12-19 18:23:45

问题


My WPF application is running fine on Windows 7. Installation on XP machine brings up the following error on startup:

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.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.LoadComponent(System.Object, System.Uri)

at MyApplication.App.InitializeComponent()

at MyApplication.App.Main()

I think I may be experiencing the problem described in the answer to this question:

XamlParseException on Windows XP

as I am using PresentationFramework.Aero in places. Is there a way to fix this or will I have to remove Aero? This is a pain as I am using some ButtonChromes

TIA


回答1:


I had the same problem on Windows XP SP3 and for me the problem was solved by setting the "Copy Local" property of the PresentationFramework.Aero reference to "True".




回答2:


When referring to the ResourceDictionary for Aero, try specifying the full assembly name, not the short assembly name.

<ResourceDictionary Source="/PresentationFramework.Aero, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35,ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />



回答3:


  • Make sure there are no exceptions being thrown in the constructors for any of the UI components (such as codebehind for .cs files).
  • Make sure if you're using MVVM that you're not throwing any exceptions in the ViewModel constructor.

I had a view model throwing an exception (related to a COM component [which I'm now going to go track down!]) that had NOTHING to do with Xaml at all. You'll get a XamlParseException if the creation of a Xaml based component fails - and it can be misleading.




回答4:


FIX: An exception in the XAML parser is thrown when you run a WPF application on a computer that has customized English (United States) regional settings.

http://support.microsoft.com/kb/968227



来源:https://stackoverflow.com/questions/6046177/xamlparseexception-in-wpf-application-but-only-on-when-installed-on-xp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!