login到我的Windows Server 2008 R2时,出现错误
oobe.exe – .NET框架初始化错误。
找不到要运行此应用程序的运行时版本。
这个错误的原因是什么?如何解决?
编辑:
我认为这个错误出现在我改变COMPLUS_ENABLE_64bit标志之后 。 它可能有这样的事情呢?
可执行文件可能会被编译成标志,指示它只能运行在某个“位”上。 您可以使用每个.Net SDK中提供的coreflags.exe实用程序更改这些标志。
.net 2.0的sdk可以在这里find。
有三种主stream模式来configurationDLL或可执行文件:
通常AnyCPU是最好的select,除非你正在做COM互操作或以另一种方式调用本机代码,在这种情况下,应该与本机代码已经编译的位相同。
也许你不应该尝试改变第三方DLL的位数,因为如果它不是默认的“AnyCPU”,那么可能有一个很好的原因(通常是本地卫星DLL可以做任何事情,例如生成PDF文件或者使用其他的原生第三方库)。
编辑:遵循IBM的build议禁用64位运行时是相当矫枉过正的,你可以通过使用coreflags utiluity而仅仅为这个应用程序做同样的事情,同时使框架的其余部分和所有依赖的应用程序保持不变。 通过运行恢复更改:
C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Ldr64.exe Set64