XamlParseException в приложении WPF - но только при установке на XP
Мое приложение WPF работает нормально в Windows 7. При установке на компьютер с XP появляется следующая ошибка при запуске:
Версия Framework: 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, Boolean, 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, Boolean)
в System.Windows.Application.LoadComponent(System.Object, System.Uri)
в MyApplication.App.InitializeComponent()
в MyApplication.App.Main()
Я думаю, что я могу испытывать проблему, описанную в ответе на этот вопрос:
XamlParseException в Windows XP
как я использую PresentationFramework.Aero местами. Есть ли способ это исправить или мне придется удалить Aero? Это боль, так как я использую некоторые ButtonChromes
ТИА
4 ответа
У меня была такая же проблема в Windows XP SP3, и для меня эта проблема была решена путем установки свойства "Копировать локальное" ссылки PresentationFramework.Aero на "True".
При ссылке на ResourceDictionary for Aero попробуйте указать полное имя сборки, а не краткое имя сборки.
<ResourceDictionary Source="/PresentationFramework.Aero, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35,ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
- Убедитесь, что в конструкторах нет исключений для каких-либо компонентов пользовательского интерфейса (например, codebehind для файлов.cs).
- Если вы используете MVVM, убедитесь, что вы не генерируете никаких исключений в конструкторе ViewModel.
У меня была модель представления, генерирующая исключение (связанное с COM-компонентом [который я сейчас собираюсь отследить!]), Которое вообще не имело ничего общего с Xaml. Вы получите XamlParseException
если создание компонента на основе Xaml не удается - и это может ввести в заблуждение.
ИСПРАВЛЕНИЕ: Исключение в синтаксическом анализаторе XAML выдается при запуске приложения WPF на компьютере с настроенными региональными настройками английского языка (США).