📌  相关文章
📜  找不到 CodeDom 提供程序类型“Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider、Microsoft.CodeDom.Providers.DotNetCompilerPlatform、Version=2.0.1.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35”.(1)

📅  最后修改于: 2023-12-03 15:39:43.792000             🧑  作者: Mango

找不到 CodeDom 提供程序类型“Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider、Microsoft.CodeDom.Providers.DotNetCompilerPlatform、Version=2.0.1.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35”.

介绍

这是一种常见的错误消息,通常在使用CodeDom提供程序类型“Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider”时出现。此错误消息表示系统找不到所需的程序集,这可能是由于以下几个原因导致的:

  • 所需的NuGet包未正确安装
  • 项目的引用或版本号已更改,但没有正确升级
  • 缺少所需的依赖项或程序集
解决方案

以下是一些可能的解决方案,您可以尝试一下:

  1. 确保已正确安装所需的NuGet包,特别是“Microsoft.CodeDom.Providers.DotNetCompilerPlatform”包
  2. 检查项目的引用和版本,确保它们已正确升级,并在需要时手动更新它们
  3. 如果出现缺少依赖项或程序集的错误,请考虑使用NuGet包预处理程序,在构建项目之前指定要包含的依赖项或程序集
代码片段

以下是可能导致错误的代码片段:

CSharpCodeProvider codeProvider = new CSharpCodeProvider();

若要解决此问题,可尝试以下修改:

//手动指定程序集
var assemblies = new List<string> { "System.dll", "System.Core.dll" };
CSharpCodeProvider codeProvider = new CSharpCodeProvider(new Dictionary<string, string>() { { "CompilerVersion", "v4.0" } }, assemblies.ToArray());

该代码片段手动指定了所需的程序集,以确保系统可以正确运行CodeDom提供程序。