我们正在开发一个包含大量插件 dll 文件的 Web 应用程序。
现在,我们可以加载我们需要的所有程序集,但我们在执行此操作时使用的是 BuildManager.AddReferencedAssembly。这 - 我猜 - 会导致一个小问题。
问题是,我们需要在不重新启动应用程序的情况下更新这些 dll 文件,但这些 dll 文件在应用程序运行时被锁定。
我们没有为这些 dll 文件使用 bin 文件夹。我们正在使用 2 个不同的文件夹(第一个 - ~/plugins - 用于我们复制文件,第二个 - ~/ptemp - 文件夹用于复制位于 plugins 文件夹下的文件,然后像 bin 文件夹中的文件一样加载到应用程序中)
如您所知,在应用程序运行时,您可以覆盖 bin 文件夹中的文件,这意味着可以在应用程序运行时覆盖项目程序集。
经过一些研究,我发现可以通过在 appdomainsetup 中使用私有文件夹的东西,但无法弄清楚如何。(我们不想创建另一个 appdomain,我们希望将这些位于 ptemp 文件夹中的文件附加到主域)
对不起,我的英语很差,但如果可以,请帮助我们。
顺便说一句,其中一些 dll 文件包含一些 mvc 区域。
我们正在使用 .Net 4.5、Mvc 4。
如果有必要,我可以发布一些代码。