c# CompileAssemblyFromSource,添加它需要的引用程序集

本文关键字:引用 程序集 CompileAssemblyFromSource 添加 | 更新日期: 2023-09-27 18:10:17

我有CompileAssemblyFromSource工作的代码,只引用我的程序(编译它)使用的程序集。效果很好。

但是,如果我需要编译带有"using blah;"语句的代码,它将无法找到blah,并说它缺少资源。

所以如果是"System.Windows。然后输入compilerparams.ReferencedAssemblies.Add("System.Windows.Forms.dll"),就可以了。

所以我可以解析代码文件并获得所有的"使用"参数,但我怎么知道那些应该是"*.dll"添加,或者它们是其他地方的名称空间或什么?有没有办法让。net吸收"System.Windows. net"。form "然后返回" system。windows。Forms。dll"因为这是它需要的,等等?

c# CompileAssemblyFromSource,添加它需要的引用程序集

  1. 阅读文章运行时如何定位程序集
  2. 在编译代码之前,加载在第1点提到的位置中找到的所有程序集
  3. 加载所有程序集中的所有类型,并保留命名空间,类型对的字典
  4. 当在源代码中遇到使用时,尝试从3
  5. 中的字典中添加程序集的引用。