Windows-Server-2008

如何修復 oobe.exe .Net 框架初始化錯誤?

  • June 13, 2013

登錄到我的 Windows Server 2008 R2 時出現錯誤

oobe.exe - .NET 框架初始化錯誤。

找不到執行此應用程序的執行時版本。

此錯誤的原因是什麼以及如何解決?

編輯:

我認為這個錯誤是在我更改 COMPLUS_ENABLE_64bit flag之後出現的。它可能有什麼做這個?

執行檔可以用標誌編譯,表明它只能在某個“位”中執行。您可以使用每個 .Net SDK 中提供的coreflags.exe 實用程序更改這些標誌。

.net 2.0 的 sdk 可以在這裡找到。

配置 DLL 或執行檔有 3 種主流模式:

  • AnyCPU(將 jit 到任何可用的,更喜歡 64 位):/32BIT+ /ILONLY+
  • x86:(禁用 64 位編譯)/32BIT+ /ILONLY-
  • x64:(禁用 32 位編譯)/32BIT- /ILONLY-

通常 AnyCPU 是最佳選擇,除非您正在執行 COM 互操作或以其他方式呼叫本機程式碼,在這種情況下,位數應該與本機程式碼的編譯目標相同。

可能您不應該嘗試更改第 3 方 DLL 的位數,因為如果它不是預設的“AnyCPU”,則可能有一個很好的理由(通常是可以做任何事情的本機衛星 DLL,例如生成 PDF 文件或使用其他本機第 3 方庫)。


編輯:按照 IBM 的建議禁用 64 位執行時是相當過分的,您可以通過使用 coreflags 實用程序僅對這個應用程序執行相同的操作,同時保持框架的其餘部分和所有依賴的應用程序不變。通過執行恢復更改:

C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Ldr64.exe Set64

引用自:https://serverfault.com/questions/487748