操作系统:win10      

问题背景:win10 自动更新后,打开VS报错  损坏的映像 C:\WINDOWS\system32\sfc.dll 没有指定在Windows上运行,或者它包含错误,错误状态0xc0000020。附:其他应用程序能正常运行运行(所以一度怀疑VS出现问题,可系统更新前VS2015和VS2017运行良好,中间有试着修复VS,修复后还是报不同的库的错误,才知道是系统文件的错误)

解决方案(我最后决定重装系统了):

一、网上下载或从其他运行完好的电脑上复制sfc.dll文件,替换本机文件,直接替换过程中由于权限问题又涉及到TrustedInstaller的问题,就不再累述了。

二、完全注册系统中的.dll文件  (失败!)

方法:在命令提示窗口输入

for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1

所有库文件重新注册后,还是报上面的错误。

三、附上链接:https://support.microsoft.com/zh-cn/help/929833/use-the-system-file-checker-tool-to-repair-missing-or-corrupted-system

在“搜索”处输入cmd,在搜索出的命令提示符处右键单击“以管理员的身份运行”,在命令提示符窗口输入:sfc/scannow命令,sfc /scannow 命令将扫描所有受保护的系统文件,并用位于 %WinDir%\System32\dllcache 的压缩文件夹中的缓存副本替换损坏的文件。%WinDir% 占位符代表 Windows 操作系统文件夹。

VS2010调用LUA无法打开LUAh vs无法打开dll文件_VS2010调用LUA无法打开LUAh

提示:Windows资源保护找到了损坏文件,但其中有一些文件无法修复

在命令提示符中输入以下信息,显示无法修复的文件:

findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >"%userprofile%\Desktop\sfcdetails.txt"

然后手动将损坏的文件替换完好的文件副本

1、获得损坏的系统文件的管理所有权。 为此,在提升的命令提示符处,复制并粘贴(或键入)以下命令,然后按 Enter 键:

takeown /f Path_And_File_Name

注意 Path_And_File_Name 占位符代表损坏文件的路径和文件名。 例如,键入 takeown /f C:\windows\system32\jscript.dll。

2、授予管理员完全访问损坏的系统文件的权限。 为此,复制并粘贴(或键入)以下命令,然后按 Enter 键:

icacls Path_And_File_Name /GRANT ADMINISTRATORS:F

注意 Path_And_File_Name 占位符代表损坏文件的路径和文件名。 例如,键入 icacls C:\windows\system32\jscript.dll /grant administrators:F

3、将损坏的系统文件替换为已知完好的文件副本。 为此,复制并粘贴(或键入)以下命令,然后按 Enter 键:

复制 Source_File Destination

注意 Source_File 占位符代表计算机上已知完好的文件副本的路径和文件名,Destination 占位符代表损坏文件的路径和文件名。 例如,键入 copy E:\temp\jscript.dll C:\windows\system32\jscript.dll。

然鹅还是失败!!!

四、在联网的情况下依次输入下面命令:

dism /online /cleanup-image /scanhealth
diam /online /cleanup-image /restorehealth

注意中间的空格,要是没有空格会报错。如第二张图,错误类型:87

VS2010调用LUA无法打开LUAh vs无法打开dll文件_占位符_02

扫描完成后,没有报错,但是VS还是打不开。修复、卸载、重装还不行,把安装过程报出的错误修改后还是打不开,再次修复,还是打开失败。已经决定重装系统了。