使用组件开发,但不使用组件发货

Develop with the assembly but ship without the assembly

我为一个名为 BigClient 的客户工作。 BigClient 中的机器都安装了一个名为 BigSoftware 的服务软件。但是我的计算机没有安装这个 BigSoftware。因此,当我开发一个在此 BigSoftware 之上运行的应用程序时,我需要从该 BigSoftware 的 lib 文件夹中取出一个名为 TinyDll.dll 的程序集文件,并将其复制到我的计算机并从那里引用它。那么问题来了,我应该如何编写我的代码并配置我的 visual studio (C#) 以实现:

  1. 当我在 BigClient 中部署时,我不应该将这个 TinyDll.dll 与我的应用程序一起发送。我的应用程序应该从他们机器上的全局程序集缓存中加载这个 TinyDll.dll。

  2. 当我在我的计算机上本地部署时,我的应用程序应该从我的本地文件夹中引用这个 TinyDll.dll。

编辑:最后我发现我只需要 TinyDll.dll 来编译我的解决方案。但是这个 TinyDll.dll 不应该包含在我的部署中(因为否则我违反了许可协议)。然后我部署的应用程序会自动从 GAC 加载它。

您可以使用一些关于动态程序集加载的方法和最佳实践,但对于大多数开发环境类型的问题,我喜欢在编写代码之前先查看流程,这只会帮助您编写代码。

对我来说最重要的解决方案是:将此 TinyDll.dll 放在您的本地开发机器 GAC 中。然后你的解决方案将无论如何从同一个地方加载它。