3

此 WPF 应用程序面向 .NET 3.5,并使用 Visual Studio 2010 中的 4.0 工具构建(csc.exe 版本为 4.0.30319.1)。

我不确定我看到的这个异常是怎么回事。同一个 exe 已经在所有机器上运行了几个月,但就在今天,一位客户遇到了这个问题。我无法在本地复制它,我所要做的就是从下面的日志文件中获取堆栈跟踪。

我使用 Visual Studio 2010 制作了一个快速示例应用程序,它仅在窗口中显示一个按钮,按钮内容字符串是从资源字典中提取的。这适用于客户的机器,所以看起来 .NET 安装并没有完全安装在那里......

关于下一步要调查或调查什么的任何想法?也许客户.NET安装的某些状态?

编辑:客户执行了 .NET 3.5 的卸载和重新安装并解决了问题。我猜他们的安装中有一些奇怪的状态导致了这个问题。

错误:

System.Windows.Markup.XamlParseException:“MainWindowViewResources.xaml”值不能分配给对象“System.Windows.ResourceDictionary”的属性“Source”。尝试读取或写入受保护的内存。这通常表明其他内存已损坏。标记文件“symformconfig;component/view/mainwindowview.xaml”中的对象“System.Windows.ResourceDictionary”出错。---> 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 request, ContentType& contentType) 在 System.Windows.ResourceDictionary.set_Source(Uri value) --- 内部异常堆栈跟踪结束 --- 在 System.Windows.Markup.XamlParseException.ThrowException( System.Windows.Markup.XamlParseException.ThrowException(ParserContext parserContext,Int32 lineNumber,Int32 linePosition,字符串消息,异常 innerException)处的字符串消息,异常 innerException,Int32 lineNumber,Int32 linePosition,Uri baseUri,XamlObjectIds currentXamlObjectIds,XamlObjectIds contextXamlObjectIds,Type objectType)在 System.Windows.Markup.BamlRecordReader.ThrowExceptionWithLine(字符串消息,异常 innerException)在 System.Windows.Markup.BamlRecordReader.ReadPropertyRecordBase(字符串 attribValue,Int16 attributeId, Int16 converterTypeId) 在 System.Windows.Markup.BamlRecordReader.ReadPropertyConverterRecord(BamlPropertyWithConverterRecord bamlPropertyRecord) 在 System.Windows.Markup.BamlRecordReader.ReadRecord(BamlRecord bamlRecord) 在 System.Windows.Markup.BamlRecordReader.Read(Boolean singleRecord) 在 System .Windows.Markup.TreeBuilderBamlTranslator.ParseFragment() 在 System.Windows.Markup.TreeBuilder.Parse() 在 System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream) 在 System.Windows。 Application.LoadComponent(Object component, 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(Object used) 在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter) 在 System.Windows.Threading.ExceptionWrapper。 TryCatchWhen(对象源,委托回调,对象参数,布尔 isSingleParameter,委托 catchHandler)

4

2 回答 2

1

确保 MainWindowViewResources.xaml 的 BuildAction 设置为 Page 而不是 Resource。您可以在“属性”面板中找到该设置。

于 2010-11-03T02:30:04.040 回答
1

客户执行了 .NET 3.5 的卸载和重新安装并解决了该问题。我猜他们的安装中有一些奇怪的状态导致了这个问题。

于 2010-11-09T01:51:20.843 回答