通过 AssemblyResolve 加载程序集时抑制控制台输出

Suppress console output when loading assemblies via AssemblyResolve

我有一个命令行应用程序,我想在应用程序目录外的某些路径加载一些 DLL。我可以通过添加自己的 ResolveEventHandler 成功地做到这一点。但是,然后我在控制台中得到不需要的输出,如下所示:

Checking for existing AssemblyResolve handler
Removed existing AssemblyResolve handler

我怎样才能抑制这个输出?

这是我当前的代码:

static Assembly LoadPrereq(object sender, ResolveEventArgs args)
{
    if (args.Name.StartsWith("DebugDiag.DotNet"))
        return Assembly.LoadFile("C:\Program Files\DebugDiag\DebugDiag.DotNet.dll");
    return null;
}

...

AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(LoadPrereq);

也许这会有所帮助 Console.SetOut(TextWriter)

Sets the Out property to target the TextWriter object.

为此,您可以调用以下命令将其禁用

Console.SetOut(TextWriter.Null);

您可以使用 Console.Out 保存原始文件,以便再次重新启用它

Gets the standard output stream.

注意:这是未经测试的,只能通过文档找到