我有一个命令行winforms可执行文件,可以调用Windows winforms应用程序。
偶尔Ops忘记在部署应用程序时使用命令行exe包含windows exe,从而导致错误。
如何优雅地处理并显示错误而不是:
未处理的例外情况: System.IO.FileNotFoundException:可以 不加载文件或屁股'MyappFoo, 版本= 5.1.4303.0,文化=中立, PublicKeyToken = null'或其中一个 依赖。系统找不到 指定的文件。文件名: 'MyAppFoo,版本= 5.1.4303.0, Culture = neutral,PublicKeyToken = null' 在AppFoo.Program.Main(String [] args)
WRN:程序集绑定日志记录是 关掉。要启用程序集绑定 失败日志记录,设置注册表 价值[HKLM \ Software \ M. icrosoft \ Fusion!EnableLog](DWORD)来 注意:程序集绑定会导致一些性能损失 失败了。要转动此功能 关闭,删除注册表值 [HKLM \ SOFTWARE \微软\毕淑敏 离子!EnableLog]。
编辑:
为了澄清一下,当
时,如何拦截FileNotFoundExcceptionstatic int Main(string[] args)
{
try
{
Console.WriteLine"MyPhooApp Command Line (c) PhooSoft 2008");
}
catch (System.IO.FileNotFoundException fe)
{
Console.WriteLine("Unable to find foo.exe");
return -1;
}
}
也没有写作。
答案 0 :(得分:4)
您可以使用.NET 2.0中引入的仅反射加载功能。这允许您加载程序集以进行检查,而无需将其实际加载到appdomain中。
答案 1 :(得分:0)
你能不能简单地用FileInfo.Exists查找文件?