【发布时间】:2009-12-02 12:44:00
【问题描述】:
我有一个 C# 应用程序,它有一个通过引用添加的 dll。 当我尝试从 Windows 运行 exe 文件(编译后)并且 dll 被重命名时,我希望应用程序显示错误消息。
如何在代码中做到这一点?
【问题讨论】:
标签: c# winforms assemblies dynamic-linking dynamic-loading
我有一个 C# 应用程序,它有一个通过引用添加的 dll。 当我尝试从 Windows 运行 exe 文件(编译后)并且 dll 被重命名时,我希望应用程序显示错误消息。
如何在代码中做到这一点?
【问题讨论】:
标签: c# winforms assemblies dynamic-linking dynamic-loading
如果 exe 找不到任何所需的 dll,它应该已经显示错误。大致如下:
程序无法启动,因为您的计算机中缺少 example.dll。尝试重新安装程序以解决此问题。
你没有得到这个事实意味着几件事之一:
a) 您的程序实际上并未引用该 dll。
b) 您已将 dll 链接到 exe。
c) CLR 在别处找到了 DLL(感谢 Pondidum)
【讨论】:
在 .NET 应用程序中,直到您第一次尝试使用丢失的 DLL 中的类时才会收到错误。
几种可能性:
【讨论】:
您的 exe 也有可能在其他地方找到所需的程序集。要检查它在哪里搜索所需的程序集,请查看this article on MSDN。
另一种可能性是使用AssemblyLoad 或AssemblyResolve 事件来获取有关(未)加载哪些程序集的更多信息。
【讨论】: