【发布时间】:2015-09-07 11:22:14
【问题描述】:
我在 Windows 7 x64 SP1 上的 Visual Studio 2013 Update 5 中开发 WPF 应用程序。启动程序后,通过 http 下载 xml 文件并解析它。直到今天一切正常,问题是异常开始突然发生,项目没有发生重大变化,没有添加新的引用。
现在在启动程序时会抛出 System.Windows.Markup.XamlParseException 并带有消息 “方法或操作未实现”,它甚至发生在 InitializeComponent() 之前,所以没有一行 my执行的代码。然后我查看了 Visual Studio 中的 IntelliTrace 窗口,发现了一连串异常,最上面是 System.EntryPointNotFoundException 并带有消息 "Unable to find an entry point named 'EventSetInformation' in DLL 'advapi32 .dll'"。
搜索给我this 和this 说EventSetInformation 仅适用于Windows 8+。所以 windows 7 缺少这个方法,这是一个例外,但是我的程序如何引用这个方法,而它(程序)与 windows 8 无关,一点也不?
我还可以假设 Visual Studio 中有一些与 Update-5 相关的组件可以触发此 advapi32 方法,但如果是这样 - 我该如何禁用此功能?
编辑
使用 .NET 4.5 的程序
异常信息:
System.Windows.Markup.XamlParseException occurred
Message=The method or operation is not implemented.
Source=PresentationFramework
StackTrace:
in System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
编辑2
正如史蒂夫和汉斯在 cmets 中注意到的那样,实际问题最终与 advapi32 库无关。我有一个从Window 派生的WindowEx 类和一些自定义的东西,我的可视窗口是从这个WindowEx 派生的。也许我的自定义类错过了一些方法(如果相信异常消息),但是在将基类切换回Window并将自定义逻辑从WindowEx直接放到可视窗口后,错误就消失了。
【问题讨论】:
-
你的第二个链接表明这是“预期的行为”(不是我纵容这个,甚至不知道它是否属实) - 例如,net 4.6 目前在 Windows 7 上抛出并吞下这个异常。该错误的作者后者承认他遇到的实际应用程序崩溃问题与此无关
-
这是在旧版本的 Windows 上运行时的预期异常。它是无害的,try/catch 确保它不会终止程序。您将在 IntelliTrace 窗口中看到它。您尚未找到出现此问题的真正原因。
-
核心 CLR 问题 - 请参阅 github.com/dotnet/coreclr/issues/974
-
@CADbloke 谢谢你的信息,证明这个异常对程序执行是透明的,而且我上次又遇到了好几次这个异常。但是当我第一次看到这个异常时,我真的很困惑:)
-
我也很困惑。我在 WPF 应用程序中看到它并想“现在怎么办”?好像WPF不够脆弱。 ://
标签: c# wpf visual-studio xaml advapi32