我已經用Visual Studio 2012在Windows 7機器上編寫了一個.NET 4.5應用程序,它在Windows 7上安裝並運行良好。在Windows 7和8中不同的.NET 4.5?
當我嘗試在Windows 8機器上部署它時,它非常災難性地崩潰,在事件查看器中沒有非常有用的輸出。
跟蹤依賴Walker暗示它無法在一個/某些核心窗口dll中找到方法。 例如:
LoadLibraryExW("C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscoreei.dll", 0x0000000000000000, LOAD_WITH_ALTERED_SEARCH_PATH) returned 0x00007FFDEA780000.
GetProcAddress(0x00007FFDEA780000 [MSCOREEI.DLL], "RegisterShimImplCallback") called from "MSCOREE.DLL" at address 0x00007FFDEA82F3A9 and returned 0x00007FFDEA783444.
GetProcAddress(0x00007FFDEA780000 [MSCOREEI.DLL], "RegisterShimImplCleanupCallback") called from "MSCOREE.DLL" at address 0x00007FFDEA82F3BC and returned NULL. Error: The specified procedure could not be found (127).
當檢查mscoreei.dll,我注意到:
Windows 7計算機
v4.0.30319.18408
613456字節
視窗8機
v4.0.30319.33440
633,424 b (ASoft .NET version detector)有.NET 4.5 Full。
爲什麼我的機器有不同的.NET版本,以及如何確保我的Windows 7機器上的編譯器指向Windows 8機器的正確版本?
在運行沒有更多的信息,第三方DLL猜測 - 服務包/安全補丁。運行Windows更新,也許? – Bridge
@Bridge:我已經在兩個窗口上運行了一百萬次。 – DefenestrationDay
我看到您標記了Windows 8.1,它隨.net 4.5.1一起提供,但在Windows 7上使用Visual Studio 2012,它隨.net 4.5.0一起提供,這就是版本號不同的原因。不知道爲什麼它會失敗災難性的! – JMK