Roslyn 问题 - 找不到元数据文件 System.Runtime.dll

Roslyn Issue - Metadata file System.Runtime.dll could not be found

我们使用 CodeDomProvider 在我们的应用程序中编译 C# 和 VB 代码。自 Roslyn 推出以来,我们一直在使用它。我们目前使用的是 Roslyn 1.0.8 版。最近,我们开始收到此错误:

Metadata file 'C:\Windows\system32\config\systemprofile\AppData\Local\assembly\dl3GTGDQKQ.4QR\V42JN801.7NMa4366e\f1f27652_1972d301\System.Runtime.dll' could not be found

我没有手动添加此引用。 Roslyn 似乎是在任意添加此引用。我已经尝试在我们应用程序的 bin 文件夹中添加对 System.Runtime.dll 的引用,但问题并没有消失。

我在这里记录了回购的错误,但没有回应: https://github.com/dotnet/roslyn/issues/24630

还有其他人看到这个错误吗?有解决方法吗?为什么编译器要在这条路径上寻找 System.Runtime.dll?为什么它不直接使用我们 bin 文件夹中的 DLL?

我找到了解决方法。如果我将文件 System.Runtime.dll 从我的 bin 文件夹复制到路径 C:\Windows\system32\config\systemprofile\AppData\Local\assembly\dl3GTGDQKQ.4QR\V42JN801.7NMa4366e\f1f27652_1972d301 程序集编译正常。

因此,Roslyn 忽略了我告诉它 System.Runtime.dll 所在的路径,而是期望在硬编码路径中找到 DLL。这对我来说确实像是一个错误。