构建并 运行 OK,但设计器无法加载 System.Dynamic

Build and run OK, but designer cannot load System.Dynamic

愉快地编码和测试了一段时间这个项目,突然这个Windows表单页面的设计者无法显示表单,错误信息如下。尽管如此,该项目仍可以正常构建和运行。我无法检查和改进我项目的 GUI。

我尝试了类似 SO 问题的答案,例如删除 binobj 以及 AppData 文件夹,关闭并重新打开 VS,清理项目并重建,但问题是设计师仍然存在。不过,项目构建和运行正常。

请帮忙。 . .

Could not load file or assembly System.Dynamic.
File is corrupt. (Exception from HRESULT: 0x8013110E)

无法仅复制和粘贴错误详细信息,但可以使用屏幕截图。顺便说一下,最近我也看到黄色条上有一些可怕的信息,但我总是忽略那些。


更新:

我检查了this SO question on System.Dynamic。我的代码中没有使用关键字 dynamic,我什至不知道那是什么。我也不用Core,我用Windows Forms.

在其他 SO 问题中,我阅读了有关 32/64 位问题的信息。我的项目设置为 Any CPU,但为了好玩,我尝试构建 32 位 (x86),VS 崩溃了。然后我为 64 位 (x64) 构建,然后是 AnyCpu,然后是 32 位并且工作正常。仍然有趣的是,VS 在构建 32 位时崩溃了(实际上,崩溃了两次)。最终,任何位选项的构建现在都可以正常工作了。

根据 SO 上的类似问题,我认为问题出在 Visual Studio 安装区域。这是进一步的建议,因为相同的源代码,如存档在 SVN 中,在我的旧电脑上使用 VS2017 工作得很好。在这个表单的设计器中没有问题。

我可以重新安装 VS,但我决定将这个 VS-2019 升级到新的 VS-2022。有趣,因为今天还是 2021 年,只有几天。

运行VS-2022,这个设计器没问题

现在,运行VS-2019,设计器的问题消失了。也许安装新版本的 VS 可以解决程序集丢失或损坏的问题。

下次听到这个问题,我会建议:

Reinstall (or upgrade) Visual Studio

升级可以解决问题的另一个原因是 VS 2022 是 64 位的。这消除了 32 / 64 位问题等错误。