我在Windows 7 x64 SP1上的Visual Studio 2013 Update 5中開發WPF應用程序。通過http啓動程序下載xml文件並解析它。所有工作都很好,直到今天,問題是異常開始突然發生,項目沒有發生重大變化,也沒有添加新的引用。現在advapi32.dll中的EntryPointNotFoundException在啓動應用程序時
在啓動程序引發System.Windows.Markup.XamlParseException
與消息「的方法,或操作未實現」等的我代碼沒有一行執行InitializeComponent()
甚至在它發生。然後,我查看了IntelliTrace在Visual Studio中的窗口,發現一連串例外,其中頂部是System.EntryPointNotFoundException
帶有消息「無法在DLL'advapi32.dll'」中找到名爲'EventSetInformation'的入口點。
搜索給我this和this說EventSetInformation
只是windows 8+。所以Windows 7缺少這種方法,這裏是例外,但我的程序如何參考此方法,而它(程序)是不相關的Windows 8,不是? 我還可以假設在Visual Studio中有一些Update-5相關的組件可以觸發這個advapi32方法,但是如果是這樣的話 - 我如何禁用此功能?
編輯使用.NET 4.5
異常信息
計劃:
EDIT2
正如史蒂夫與漢族評論注意到,實際問題最終是不相關的advapi32庫。我有一個WindowEx
類從Window
派生的一些自定義的東西,我的視覺窗口來自這個WindowEx
。也許我的自定義類錯過了某種方法(如果要相信異常消息),但是在將基類切換回Window
並將自定義邏輯從WindowEx
直接放到可視窗口後,錯誤消失了。
你的第二個鏈接表明這是「預期的行爲」(不是我寬恕這個,或者甚至不知道它是真的) - 例如,net 4.6在當前的Windows 7上拋出併吞下此異常。該bug的作者後來承認他實際的應用程序崩潰問題與他無關 – Steve
這是您在較早版本的Windows上運行時的預期異常。它是無害的,try/catch確保它不會終止程序。您將在IntelliTrace窗口中看到它。你還沒有找到你有這個問題的真正原因。 –
核心CLR問題 - 請參閱https:// github。com/dotnet/coreclr/issues/974 –