BuildManager.GetReferencedAssemblies equivalent for non-web applications

前端 未结 3 1230
鱼传尺愫
鱼传尺愫 2021-02-07 12:26

Compared to AppDomain.GetAssemblies(), BuildManager.GetReferencedAssemblies() (System.Web.Compilation.BuildManager) seems a more reliable way to get th

3条回答
  •  没有蜡笔的小新
    2021-02-07 12:47

    This solution is based on @steven's answer. But would work in Web, WinForms, Consoles, and Windows Services.

    var binDirectory = String.IsNullOrEmpty(AppDomain.CurrentDomain.RelativeSearchPath) ? AppDomain.CurrentDomain.BaseDirectory : AppDomain.CurrentDomain.RelativeSearchPath;
    
    var assemblies = from file in Directory.GetFiles(binDirectory)
                     where Path.GetExtension(file) == ".dll"
                     select Assembly.LoadFrom(file);
    

提交回复
热议问题