我正在使用 .NET Framework 2.0 开发一个 Windows 应用程序。用户只能看到所需的功能。
我面临的复杂性是,某些功能需要一些外部 DLL。所以我希望如果用户不需要该功能,则不应将 DLL 部署在用户机器中。
我认为一种解决方案是使用反射来使用 DLL 中的函数而不添加引用并创建 2 个单独的部署项目 - 一个带有 DLL,另一个没有它。
任何人都可以提出其他解决方案吗?
谢谢
似乎您需要一个插件系统,为此使用MEF
@Antonio 是对的,您实际上是在描述一个插件系统。
您可以使用AssemblyLoad()
类中的一种方法,只要您可以使用内存中的程序集,直到整个应用程序关闭。如果您需要能够在运行时卸载程序集的更复杂的场景,这个 SO question可能对您有用。