WPF应用程序中的XamlParseException - 但仅限于在XP上安装时

时间:2011-05-18 14:14:44

标签: wpf xaml windows-xp xamlparseexception

我的WPF应用程序在Windows 7上正常运行。在XP机器上安装会在启动时出现以下错误:

  

框架版本:v4.0.30319

     

描述:过程是   由于未处理而终止   异常。

     

异常信息:   System.Windows.Markup.XamlParseException

     

Stack:at   System.Windows.Markup.XamlReader.RewrapException(System.Exception的,   System.Xaml.IXamlLineInfo,System.Uri)

     

在   System.Windows.Markup.WpfXamlLoader.Load(System.Xaml.XamlReader,   System.Xaml.IXamlObjectWriterFactory,   Boolean,System.Object,   System.Xaml.XamlObjectWriterSettings,   的System.Uri)

     

在   System.Windows.Markup.WpfXamlLoader.LoadBaml(System.Xaml.XamlReader,   Boolean,System.Object,   System.Xaml.Permissions.XamlAccessLevel,   的System.Uri)

     

在   System.Windows.Markup.XamlReader.LoadBaml(System.IO.Stream,   System.Windows.Markup.ParserContext,   System.Object,Boolean)

     

在   System.Windows.Application.LoadComponent(System.Object的,   的System.Uri)

     

在   MyApplication.App.InitializeComponent()

     

在MyApplication.App.Main()

我想我可能遇到了这个问题的答案中描述的问题:

XamlParseException on Windows XP

因为我在地方使用PresentationFramework.Aero。有没有办法解决这个问题,还是我必须删除Aero?这是一个痛苦,因为我正在使用一些ButtonChromes

TIA

4 个答案:

答案 0 :(得分:6)

我在Windows XP SP3上遇到了同样的问题,对我来说,通过将PresentationFramework.Aero引用的“Copy Local”属性设置为“True”来解决问题

答案 1 :(得分:1)

在引用Aero的ResourceDictionary时,请尝试指定完整的程序集名称,而不是短程序集名称。

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

答案 2 :(得分:0)

  • 确保在任何UI的构造函数中都没有抛出异常 组件(例如.cs文件的代码隐藏)。
  • 确保您使用的是MVVM,而不是在ViewModel构造函数中抛出任何异常。

我有一个视图模型抛出异常(与COM组件有关[我现在要跟踪它!])根本没有与Xaml有关。如果创建基于Xaml的组件失败,您将获得XamlParseException - 这可能会产生误导。

答案 3 :(得分:0)

FIX:在具有自定义英语(美国)区域设置的计算机上运行WPF应用程序时,将引发XAML解析器中的异常。

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