[通过AssemblyResolve加载程序集时抑制控制台输出
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[通过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)
有帮助
将Out属性设置为以TextWriter对象为目标。
为此,您可以调用以下命令将其禁用
Console.SetOut(TextWriter)
您可能可以用Console.SetOut(TextWriter.Null);
保存原件,以便再次启用它
获取标准输出流。
[[Note:未经测试,只能通过文档找到
以上是关于[通过AssemblyResolve加载程序集时抑制控制台输出的主要内容,如果未能解决你的问题,请参考以下文章
尝试通过反射加载应用程序并获取错误“无法加载文件或程序集......系统找不到指定的文件。”