如何在没有dll的情况下运行exe文件时如何显示错误消息?

时间:2009-12-02 12:44:01

标签: c# winforms assemblies dynamic-linking dynamic-loading

我有一个C#应用程序,它通过引用添加了一个dll。 当我尝试从Windows运行exe文件(编译后)并重命名DLL时,我希望应用程序显示错误消息。

我怎么能在代码中做到这一点?

3 个答案:

答案 0 :(得分:3)

如果exe找不到任何必需的dll,它应该已经显示错误。有点像:

  

程序无法启动,因为您的计算机缺少example.dll。尝试重新安装该程序以解决此问题。

你没有得到这个意味着以下几点之一:

a)您的程序实际上并未引用该DLL。

b)您已将dll链接到exe。

c)CLR在其他地方找到了DLL(感谢Pondidum)

答案 1 :(得分:1)

在.NET应用程序中,在第一次尝试在缺少的DLL中使用类之前,您不会收到错误。

有几种可能性:

  • 编写在程序启动时运行的代码,并在每个DLL中的一个类上调用虚方法
  • 递归调用Assembly.GetReferencedAssemblies()并构建缺少的DLL列表

答案 2 :(得分:1)

此外,您的exe可能会在其他地方找到所需的程序集。要查看搜索所需组件的位置,请查看this article on MSDN

另一种可能性是使用AssemblyLoadAssemblyResolve事件来获取有关(未)加载哪些程序集的更多信息。