WPF: XamlParseException -> AccessViolation при загрузке словаря ресурсов - PullRequest
3 голосов
/ 03 ноября 2010

Это приложение WPF предназначено для .NET 3.5 и построено с помощью инструментов 4.0 из Visual Studio 2010 (версия csc.exe - 4.0.30319.1).

Я не уверен, что делать с этим исключением, которое я вижу. Один и тот же exe работал месяцами на всех машинах, но только сегодня клиент столкнулся с этим. Я не могу воспроизвести его локально, все, что мне нужно, - это трассировка стека из наших файлов журналов ниже.

Я сделал быстрый пример приложения для Visual Studio 2010, в котором просто отображается кнопка в окне, кнопка «Содержимое» извлекается из словаря ресурсов. Это работало на клиентской машине, поэтому, похоже, что установка .NET там не полностью скрыта ...

Любые идеи о том, что расследовать или смотреть дальше? Может быть, какое-то состояние клиентов .NET установить ??

РЕДАКТИРОВАТЬ: клиент выполнил удаление и переустановку .NET 3.5, и это решило проблему. Я предполагаю, что в их установке было какое-то странное состояние, которое вызывало эту проблему.

System.Windows.Markup.XamlParseException: значение 'MainWindowViewResources.xaml' нельзя присвоить свойству 'Source' объекта 'System.Windows.ResourceDictionary'. Попытка чтения или записи защищенной памяти. Это часто указывает на то, что другая память повреждена. Ошибка в объекте «System.Windows.ResourceDictionary» в файле разметки «symformconfig; component / view / mainwindowview.xaml». ---> System.AccessViolationException: попытка чтения или записи в защищенную память. Это часто указывает на то, что другая память повреждена. в System.IO.Packaging.PackagePart.CleanUpRequestedStreamsList () в System.IO.Packaging.PackagePart.GetStream (режим FileMode, доступ к FileAccess) в System.IO.Packaging.PackWebResponse.CachedResponse.GetResponseStream () в System.IO.Packaging.PackWebResponse.GetResponseStream () в System.IO.Packaging.PackWebResponse.get_ContentType () в MS.Internal.WpfWebRequestHelper.GetContentType (ответ WebResponse) в MS.Internal.WpfWebRequestHelper.GetResponseStream (запрос WebRequest, ContentType & contentType) в System.Windows.ResourceDictionary.set_Source (значение Uri) --- Конец внутренней трассировки стека исключений --- в System.Windows.Markup.XamlParseException.ThrowException (Строковое сообщение, Исключение innerException, Int32 lineNumber, Int32 linePosition, Uri baseUri, XamlObjectIds currentXamlObjectIds, XamlObjectIds contextXamlObjectIds, тип objectType) в System.Windows.Markup.XamlParseException.ThrowException (ParserContext parserContext, Int32 lineNumber, Int32 linePosition, сообщение String, исключение innerException) в System.Windows.Markup.BamlRecordReader.ThrowExceptionWithLine (строковое сообщение, исключение innerException) в System.Windows.Markup.BamlRecordReader.ReadPropertyRecordBase (String attribValue, Int16 attributeId, Int16 converterTypeId) в System.Windows.Markup.BamlRecordReader.ReadPropertyConverterRecord (BamlPropertyWithConverterRecord bamlPropertyRecord) в System.Windows.Markup.BamlRecordReader.ReadRecord (BamlRecord bamlRecord) в System.Windows.Markup.BamlRecordReader.Read (логическое значение singleRecord) в System.Windows.Markup.TreeBuilderBamlTranslator.ParseFragment () в System.Windows.Markup.TreeBuilder.Parse () в System.Windows.Markup.XamlReader.LoadBaml (Потоковый поток, ParserContext parserContext, родительский объект, логическое значение closeStream) в System.Windows.Application.LoadComponent (объектный компонент, Uri resourceLocator) в Symform.Node.Configuration.MainWindowView.InitializeComponent () в Symform.Node.Configuration.MainWindowView..ctor () в Symform.Node.Configuration.App.OnStartup (StartupEventArgs e) в System.Windows.Application. <. ctor> b__0 (объект не используется) в System.Windows.Threading.ExceptionWrapper.InternalRealCall (обратный вызов делегата, аргументы объекта, логическое значение isSingleParameter) в System.Windows.Threading.ExceptionWrapper.TryCatchWhen (источник объекта, обратный вызов делегата, аргументы объекта, логический isSingleParameter, делегат catchHandler)

Ответы [ 2 ]

1 голос
/ 09 ноября 2010

Клиент выполнил удаление и переустановку .NET 3.5, и это решило проблему.Я предполагаю, что в их установке было какое-то странное состояние, которое вызывало эту проблему.

1 голос
/ 03 ноября 2010

Убедитесь, что для параметра BuildAction объекта MainWindowViewResources.xaml задано значение Page, а не Resource. Вы можете найти этот параметр на панели «Свойства».

...