通过AssemblyResolve

时间:2019-10-24 02:15:24

标签: c# dll .net-assembly

我有一个命令行应用程序,我想在应用程序目录之外的某些路径上加载一些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);

1 个答案:

答案 0 :(得分:1)

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

有帮助
  

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

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

Console.SetOut(TextWriter.Null);

您也许可以用Console.Out保存原件,以便再次启用它

  

获取标准输出流。

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