我有一个小的winforms应用程序,它使用大约20个外部dll。 应用程序初始化时,如何检查它们的存在? 说:“你没有一些dll,安装得很糟糕。”
答案 0 :(得分:1)
您必须遍历应用程序中使用的所有自定义类型(使用反射),并尝试创建每个类型的实例。当然在try / catch中。然后抓住 FileNotFoundException 并告知用户是否缺少某些库。
当您创建应用程序中使用的类型实例时,AppDomain会加载所需的库(因此如果找不到文件,它将抛出异常)。
我认为这会有所帮助。
答案 1 :(得分:0)
如果缺少其中一个必需的程序集,CLR甚至可能无法加载您的应用程序。因此,您可以编写一个加载器应用程序,它将检查所需程序集是否存在以及它们是否存在Process.Start
主应用程序。
答案 2 :(得分:0)
如果您使用插件式架构,那么您甚至可以根据需要解决所有依赖关系 - 并且您可以控制在无法解析依赖关系时会发生什么。
它不需要复杂 - 例如参见this simple approach。