通过 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.
注意:这是未经测试的,只能通过文档找到
我有一个命令行应用程序,我想在应用程序目录外的某些路径加载一些 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.
注意:这是未经测试的,只能通过文档找到