C#应用程序中的程序集在哪里加载?

C#应用程序中的程序集在哪里加载?,c#,C#,我目前正在编写一个处理多个库的应用程序,有时访问这些库会失败(DLL丢失等) 但目前的问题是,我不能正确处理这个问题。当应用程序加载时,如果DLL不存在,程序就会崩溃(这是可以理解的)。我在想,对付这种情况最好的办法是什么?是否有一种方法可以覆盖程序集的加载方式以下载丢失的程序集?或者我需要手动加载所有程序集来解决此问题吗?将您的处理程序分配到AppDomain.AssemblyResolve事件以获得有关程序集解析失败的通知:不确定这是否是答案,但是您可以在VS的包管理器控制台中使用depen

我目前正在编写一个处理多个库的应用程序,有时访问这些库会失败(DLL丢失等)


但目前的问题是,我不能正确处理这个问题。当应用程序加载时,如果DLL不存在,程序就会崩溃(这是可以理解的)。我在想,对付这种情况最好的办法是什么?是否有一种方法可以覆盖程序集的加载方式以下载丢失的程序集?或者我需要手动加载所有程序集来解决此问题吗?

将您的处理程序分配到AppDomain.AssemblyResolve事件以获得有关程序集解析失败的通知:

不确定这是否是答案,但是您可以在VS的包管理器控制台中使用dependency manager
Nuget
将依赖项和库加载到您的解决方案中。对不起,这可能还不清楚-这是在生产中,因此包管理器没有帮助。这与可执行文件本身有关,而不是在IDE中。请检查应用程序中需要哪些库,并确保它们始终安装在应用程序的目录中?我更关心的是,为什么我的程序集在生产环境中丢失了,而不是如何解决它。为什么不首先用Fody之类的工具将所有松散的依赖项直接烘焙到可执行文件中,从而防止问题发生科斯特拉(如果你感到勇敢,也可以叫伊尔梅格)。这样就不会有DLL地狱,程序集永远不会失去同步,如果你玩得好的话,你会得到单文件部署。