XamlParseException in WPF application - but only o

2019-02-22 03:02发布

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

4条回答
神经病院院长
2楼-- · 2019-02-22 03:38

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楼-- · 2019-02-22 03:44
  • 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.

查看更多
Summer. ? 凉城
4楼-- · 2019-02-22 03:47

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

查看更多
虎瘦雄心在
5楼-- · 2019-02-22 03:55

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".

查看更多
登录 后发表回答