我最近将操作系统迁移到了新的 SSD 硬盘。全新安装:Win 7
从那时起,我就会不断收到 System.IO.FileLoadException(强名称验证失败),这迫使我每天重新安装 VS2008、SQL 服务器等。
重新安装有问题的程序可以在几天内解决问题,但之后其他程序会“崩溃”并需要重新安装。这几乎就像磁盘上的文件在几天后被更改了一样。我想知道这是硬盘问题、操作系统问题还是两者兼而有之。
每天早上上班都不知道哪个组件出现故障而需要重新安装,这真是令人烦恼。
有什么想法我可以进一步解决这个问题吗?
稍后编辑: 好吧,这已经失控了。
我每天需要重新安装 3 - 4 个应用程序。我怀疑我的 SSD 硬盘出了什么大问题,但任何磁盘检查都报告硬盘没有问题。有人知道一个好的硬盘检查实用程序吗?理想情况下,它可以多次写入/读取硬盘的相同区域并报告不一致之处。
答案1
程序集绑定日志查看器显示失败的程序集绑定的详细信息。此信息可帮助您诊断 .NET Framework 在运行时无法找到程序集的原因。这些失败通常是由于程序集部署到错误位置或版本号或文化不匹配造成的。公共语言运行时无法找到程序集通常会在您的应用程序中显示为 TypeLoadException。
也可以看看Suzanne Cook 的 .NET CLR 笔记关于“调试程序集加载失败”。
最后,请参见:
系统崩溃、DLL 丢失、Fusion Log 没有帮助...现在怎么办!?
由于没有看到可以使用上述工具检索到的任何数据,微软的排除异常:System.IO.FileLoadException定义“当找到托管程序集但无法加载时,将引发 FileLoadException 异常”。因此,我将首先尝试卸载然后重新安装您计算机上的所有 .Net 框架。
关于硬盘测试程序,我所知道的最好的是SpinRite,价格为 89 美元,并享受绝对满意保证和无条件退款政策。
答案2
每次我遇到这种情况,要么是因为 RAM 有问题,要么是因为 RAM 或主板不支持双通道,但启用了双通道。在这两种情况下,都会发生随机损坏。
答案3
经过一番研究,您发布的错误似乎与.net 上的问题和软件有关,而与硬件无关。
您是否有任何软件可以帮助/修复/扩展或执行与 .net 相关的任何正常操作?
所有程序都需要重新安装基于.net 吗?
您可能不喜欢这样,但我会从头开始重新安装 Windows,然后安装 Visual Studio + Sql,但是您要这样做并且不要安装任何非 Microsoft 或您不信任的第三方产品,等待几天,看看是否还会遇到同样的问题。
如果您没有安装其他实用程序,则我认为是硬件问题,可能是主板有问题、内存或硬盘有问题。如果您安装了其他实用程序但仍然出现错误,请在此处发布您安装了哪些程序。
答案4
这是一个有趣的问题 - 有两篇很好的文章解释了它的工作原理:http://ondotnet.com/pub/a/dotnet/2003/04/28/strongnaming.html和http://www.grimes.demon.co.uk/workshops/secWSThree.htm。我认为如果您有 SSD 的备份,我会尝试重新安装选项,看看问题是否消失。问题似乎是加载时计算的哈希值与预期不匹配,我可以看到您的 SSD 确实可能是罪魁祸首,但没有简单的方法来确认这一点。变体是使用什么工具将您的操作系统转移到 SSD。您的 SSD 制造商是否有任何信息表明这是一个已知问题?我还没有看到任何文章表明这是 SSD 的常见问题,这表明重新安装的想法是消除操作系统转移变体的好方法。我真的很想知道解决方案是什么。