gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 20:37:27 25 4
gpt4 key购买 nike

我让 CompileAssemblyFromSource 为只引用我的程序(编译它)使用的程序集的代码工作。它工作得很漂亮。

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

因此,如果它是“System.Windows.Forms”,我说“compilerparams.ReferencedAssemblies.Add("System.Windows.Forms.dll")”,它就可以工作。

所以我可以解析代码文件并获取所有“正在使用”的参数,但我怎么知道这些应该是“*.dll”添加的,或者它们是其他地方的 namespace 或诸如此类的东西?有没有办法让 .NET 接受“System.Windows.Forms”并吐出“System.Windows.Forms.dll”,因为这是它需要的等等?

最佳答案

  1. 阅读文章 How the Runtime Locates Assemblies
  2. 在编译代码之前加载在第 1 点提到的位置找到的所有程序集
  3. 加载所有程序集中的所有类型并保留一个命名空间字典,类型对
  4. 当在源代码中遇到 using 时,尝试从 3 中的字典中添加程序集的引用

关于C# CompileAssemblyFromSource,添加它需要的引用程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7605466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com