我将一些程序集添加到.NET Framework的全局访问缓存中,以便需要它们的应用程序加载它们。我使用了一个not-task命令gacutil.exe
。然后一些应用程序停止工作,其中一个显示此错误:
Unhandled Exception: System.TypeLoadException: Could not load type 'System.Diagnostics.Process' from assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=<<..>>'.
at Microsoft.CodeAnalysis.CSharp.CommandLine.Program.MainCore(String[] args)
at Microsoft.CodeAnalysis.CSharp.CommandLine.Program.Main(String[] args)
从GAS中删除添加的内容并没有帮助。
安装最新版本的.NET Framework 4.8后,我开始收到此错误,而不是
error CS7065: Error building Win32 resources -- Could not load type 'System.Numerics.BigInteger' from assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=<<..>>'.
我还抓到了这个
System.TypeLoadException: Could not load type 'System.ComponentModel.DataAnnotations.ValidationResult' from assembly 'System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=<<..>>'.
at McMaster.Extensions.CommandLineUtils.CommandLineApplication..ctor(CommandLineApplication parent, IHelpTextGenerator helpTextGenerator, CommandLineContext context)
现在由于错误,多个应用程序不能运行,可以请任何人帮我解决这个问题?
1条答案
按热度按时间qv7cva1a1#
解决方案:
%windir%\Microsoft.NET\assembly
通过改变它的权限.已终止所有Windows的explorer
进程。并通过运行move "<<path to folder which will be moved>>" "<<path to folder to move to>>"
将文件夹中的所有内容移到%windir%
外部的临时文件夹中。%windir%\Microsoft.NET
范围内,则可以由Explorer拾取。sfc /SCANNOW
,它恢复了GAC_MSIL
并修复了1个应用程序。assembly
,并修复了其他文件夹。GAC_MSIL
的项目,这些项目的名称与我添加到GAS的项目不对应,并将它们复制回来。这一招奏效了。耶!!
这不会恢复由已安装的应用程序添加的.NET程序集,我没有冒险从损坏的
GAC_MSIL
添加东西,即使它们有明确的名称。但这些应用程序通常可以处理它们的依赖关系,即使不能,也可以重新安装。