/// <summary> /// Finds and executes 'Program.Main', but with strong types. /// </summary> /// <param name="entryAssembly">The entry assembly</param> /// <param name="args">The string arguments.</param> /// <returns>The exit code.</returns> public static async Task <int> ExecuteAssemblyAsync( Assembly entryAssembly, string[] args) { if (entryAssembly == null) { throw new ArgumentNullException(nameof(entryAssembly)); } args = args ?? Array.Empty <string>(); MethodInfo entryMethod = EntryPointDiscoverer.FindStaticEntryMethod(entryAssembly); return(await InvokeMethodAsync( args, entryMethod)); }
/// <summary> /// Finds and executes 'Program.Main', but with strong types. /// </summary> /// <param name="entryAssembly">The entry assembly</param> /// <param name="args">The string arguments.</param> /// <param name="entryPointFullTypeName">Explicitly defined entry point</param> /// <param name="xmlDocsFilePath">Explicitly defined path to xml file containing XML Docs</param> /// <param name="console">Output console</param> /// <returns>The exit code.</returns> public static int ExecuteAssembly( Assembly entryAssembly, string[] args, string entryPointFullTypeName, string xmlDocsFilePath = null, IConsole console = null) { if (entryAssembly == null) { throw new ArgumentNullException(nameof(entryAssembly)); } args = args ?? Array.Empty <string>(); entryPointFullTypeName = entryPointFullTypeName?.Trim(); MethodInfo entryMethod = EntryPointDiscoverer.FindStaticEntryMethod(entryAssembly, entryPointFullTypeName); //TODO The xml docs file name and location can be customized using <DocumentationFile> project property. return(InvokeMethod(args, entryMethod, xmlDocsFilePath, null, console)); }
internal static async Task <int> ExecuteAssemblyAsync( Assembly entryAssembly, string[] args, IConsole console) { if (entryAssembly == null) { throw new ArgumentNullException(nameof(entryAssembly)); } args = args ?? Array.Empty <string>(); MethodInfo entryMethod = EntryPointDiscoverer.FindStaticEntryMethod(entryAssembly); return(await InvokeMethodAsync( args, console, entryMethod, null /* this is a static method*/)); }