【问题标题】:.Net framework mscorpe.dll error.Net 框架 mscorpe.dll 错误
【发布时间】:2015-04-19 23:24:27
【问题描述】:

我有一台安装了 Windows 7 Professional 的客户端计算机。为了运行我最新的应用程序,我安装了 .Net Framework 4.0 完整版,从here 下载。我的应用程序运行良好。

但是,在 .Net framework 3.5 中开发了另一个应用程序。当我尝试执行该应用程序时,出现错误:

C:\Windows\Microsoft.Net\Framework64\v2.0.50727\mscorepe.dll 是 不是为在 Windows 上运行而设计的,或者它包含错误...

我已尝试删除 .Net framework 4.0 并重新安装它,我尝试修复它,但似乎没有任何效果。错误仍然存​​在。

我曾尝试单独安装 .Net framework 3.5,但我无法安装它,因为机器上已经安装了较新的版本 (4.0)。

3.5 版的应用程序在其他客户端机器上运行良好,所以我猜这个问题与特定机器上的 .Net 框架安装无关。

有没有办法修复mscorpe.dll或者重新安装.Net framework 3.5?

【问题讨论】:

  • 该错误与 .NET 4.0 无关,因此重复安装它不会产生任何结果。该文件是 3.5 框架的一部分,它预装在 Win7 上。实际上,失败的不是应用程序,而是 C# 编译器 (csc.exe)。表明这是您尝试使用的应用程序中的错误。请联系应用所有者以获得支持。
  • @HansPassant,谢谢,但如果有错误,为什么它在其他机器上工作?
  • 我可以猜到,好像它不是在 64 位操作系统上运行的。但是,当您可以询问所有者并得到真正的答案时,那将毫无意义。
  • 尝试 sfc /scannow 看看这是否修复了 DLL。
  • 在您安装 .net 4 之前,其他应用程序是否在该机器上运行?

标签: c# .net winforms dll windows-7


【解决方案1】:

Chris O'Neill's answer 帮助我解决了我的问题,我对其进行了一些修改,这就是我所做的。

将工作的 mscorpe.dll 从另一台机器复制到本地计算机 在管理员模式下打开命令提示符 在命令提示符下执行以下命令

通讯:

takeown /f C:\Windows\Microsoft.Net\Framework64\v2.0.50727\mscorpe.dll

(相应地调整路径) 它返回了如下消息:

成功:文件(或文件夹):

“C:\Windows\Microsoft.Net\Framework64\v2.0.50727\mscorpe.dll”现在 归用户“loggedInUser”所有。

之后执行以下命令授予权限。 命令:

icacls C:\Windows\Microsoft.Net\Framework64\v2.0.50727\mscorpe.dll /GRANT ADMINISTRATORS:F

收到以下回复。

处理过的文件: C:\Windows\Microsoft.Net\Framework64\v2.0.50727\mscorpe.dll 成功处理1个文件;处理 0 个文件失败

然后我将正确的文件从另一台机器复制到该位置:

xcopy c:\K2PublisherError\mscorpe.dll C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorpe.dll /y

这修复了错误。

【讨论】:

    【解决方案2】:

    首先,确认文件已损坏且无法自动修复。

    运行:

    sfc /scanfile=C:\Windows\Microsoft.Net\Framework64\v2.0.50727\mscorepe.dll
    

    如果您看到消息:

    Windows Resource Protection found corrupt files but was unable to fix some of them.
    

    这意味着Windows用来执行修复的文件和备份文件都损坏了。

    Windows 无法自动修复该文件,并且在您重新安装 .Net 3.5 框架时不会替换此特定文件。


    手动恢复文件:

    1. Install 7-Zip (the 32-bit x86 version).
    2. Open an administrative command prompt.
    3. 将 Windows 7 Professional 的副本插入 DVD 驱动器或装载 ISO 映像。
    4. 从管理命令提示符运行以下命令。

    取得文件的所有权:

    takeown /f C:\Windows\Microsoft.Net\Framework64\v2.0.50727\mscorpe.dll
    

    授予覆盖文件所需的权限:

    icacls C:\Windows\Microsoft.Net\Framework64\v2.0.50727\mscorpe.dll /GRANT ADMINISTRATORS:F
    

    用安装 DVD 中的原始文件替换该文件。请注意,这假定 DVD 在 D: 驱动器上可用。如有必要,更改驱动器号以适合您的设置。

    "C:\Program Files (x86)\7-Zip\7z.exe" e D:\sources\install.wim -oC:\Windows\Microsoft.Net\Framework64\v2.0.50727\ 4\windows\Microsoft.Net\Framework64\v2.0.50727\mscorpe.dll
    

    在提示覆盖文件时输入Y


    1. 确保.Net 3.5 Windows feature is enabled 并重新测试您的应用程序。

    注意:如果您无权访问 Windows 安装 DVD 或 ISO,您可以运行前两个命令,然后从另一台运行 Windows 7 Professional x64 的计算机复制 mscorpe.dll。确保从C:\Windows\Microsoft.Net\Framework64\v2.0.50727\ 文件夹中复制它。

    【讨论】:

    • @CriketerOnSO,这是否有帮助,或者您在执行这些步骤后是否有任何进一步的错误?我已经在 VM 上对此进行了测试,是否能够复制相同的错误消息并进行修复。
    • 非常感谢。它工作得很好。只需添加一件事,我使用XCOPY. 在同一命令提示符下将文件从一台工作机器复制到其他机器,这已经修复了错误。这个答案值得赏金。接受 + 1,+ 赏金。
    • 我想有一个时间限制来允许现有答案的赏金。我稍后会回来并赏金这个答案。再次感谢。
    猜你喜欢
    • 2015-12-21
    • 2013-08-03
    • 2010-12-26
    • 1970-01-01
    • 2011-03-06
    • 2019-10-08
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    相关资源
    最近更新 更多