我正在构建一个使用Oracle.DataAccess.dll连接数据库来完成某项工作的应用程序。由于JIT加载,数据库访问不需要执行应用程序的90%,并且应用程序无需dll即可正常加载。但是,当访问使用dll的应用程序的特定部分时,它确实会崩溃。
我希望能够在dll丢失时主动禁用对该表单的访问,是否有任何方法可以在应用程序加载时检测到该dll?
更新
我能够通过
找到潜在的解决方案if (!File.Exists("Path to Oracle.DataAccess.dll"))
{
toolStripMenuItem.Enabled = false;
}
那里有更好的解决方案吗?
答案 0 :(得分:2)
您可以尝试Assembly.Load,看看它是否有效;否则,也许GetLoadedModules可能会做你需要的。路径搜索不起作用,因为它会排除GAC和其他地方的程序集。