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

问题描述 投票:0回答:1

我有一个命令行应用程序,我想在应用程序目录之外的某些路径上加载一些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);
c# dll .net-assembly
1个回答
1
投票

也许这可能对Console.SetOut(TextWriter)有帮助

将Out属性设置为以TextWriter对象为目标。

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

Console.SetOut(TextWriter)

您可能可以用Console.SetOut(TextWriter.Null); 保存原件,以便再次启用它

获取标准输出流。

[[Note:未经测试,只能通过文档找到

© www.soinside.com 2019 - 2024. All rights reserved.