【发布时间】:2015-04-08 21:02:07
【问题描述】:
我为一个名为 BigClient 的客户工作。 BigClient 中的机器安装了名为 BigSoftware 的服务软件。但是我的计算机没有安装这个 BigSoftware。所以当我开发一个在这个 BigSoftware 之上运行的应用程序时,我需要从这个 BigSoftware 的 lib 文件夹中取出一个名为 TinyDll.dll 的程序集文件,并将其复制到我的计算机并从那里引用它。那么问题来了,我应该如何编写我的代码并配置我的 Visual Studio (C#) 来实现:
当我在 BigClient 中部署时,我不应该将这个 TinyDll.dll 与我的应用程序一起发布。我的应用程序应该从他们机器上的全局程序集缓存中加载这个 TinyDll.dll。
当我在我的计算机上进行本地部署时,我的应用程序应该从我的本地文件夹中引用这个 TinyDll.dll。
编辑:最后我发现我只需要 TinyDll.dll 来编译我的解决方案。但是这个 TinyDll.dll 不应该包含在我的部署中(因为否则我违反了许可协议)。然后我部署的应用程序会自动从 GAC 加载它。
【问题讨论】:
-
您没有问题... 1/2 似乎是有效的合理陈述,所以不确定您在寻找什么...(请注意,在大多数情况下,只是在本地复制 TinyDll.Dll只会让你构建代码,而不是测试它 - 即在 SharePoint 的情况下)
-
@AlexeiLevenkov 如果我使用 TinyDll.dll 构建我的解决方案,然后在没有 TinyDll.dll 的情况下发布它,我的应用程序会自动从 BigClient 机器的全局程序集缓存中加载 TinyDll.dll 吗?
-
很明显,来自 GAC 的程序集将被加载,无论您是否在本地有一个。因此,“TinyDll”是否随您的代码一起发布并不重要。
-
@AlexeiLevenkov 好的。谢谢!我还确认了当 TinyDll 没有附带的情况下,我的应用程序将从 GAC 加载 TinyDll。
标签: c# windows visual-studio deployment .net-assembly