6

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

框架版本:v4.0.30319

说明:进程因未处理的异常而终止。

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

堆栈:在 System.Windows.Markup.XamlReader.RewrapException(System.Exception,System.Xaml.IXamlLineInfo,System.Uri)

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

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

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

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

在 MyApplication.App.InitializeComponent()

在 MyApplication.App.Main()

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

Windows XP 上的 XamlParseException

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

TIA

4

4 回答 4

6

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

于 2011-08-08T13:41:59.473 回答
1

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

<ResourceDictionary Source="/PresentationFramework.Aero, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35,ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
于 2011-11-21T15:57:05.577 回答
0

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

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

于 2012-11-12T21:15:35.997 回答
0
  • 确保任何 UI 组件的构造函数中都没有抛出异常(例如 .cs 文件的代码隐藏)。
  • 确保您在使用 MVVM 时不会在 ViewModel 构造函数中抛出任何异常。

我有一个视图模型抛出了一个与 Xaml 完全无关的异常(与 COM 组件相关 [我现在要对其进行追踪!])。如果基于 Xaml 的组件的创建失败,您将得到一个XamlParseException错误信息 - 这可能会产生误导。

于 2011-12-06T06:54:31.130 回答