什么被认为是最佳做法,当它涉及到组件和版本?

我希望能够参照多个版本的图书馆的解决方案包含多个项目,取决于不同版本的commonutils.dll 库我们建立我们自己。

因为所有依赖关系是复制到bin/debug或bin/释放,只有一个单的副本commonutils.dll 可以存在,尽管每个DLL文件具有不同的组件版本的数字。

我应该包括的版本号以大会的名称能够参照多种版本的图书馆或是有另一种方式?

有帮助吗?

解决方案

这里就是我一直生活--

这取决于你是什么计划使用该等文件。我将它们分类在两个主要群体:

  1. 死端组件。这些都是EXE文件和DLL files你真的不打算引用从任何地方。只是微弱这些名称,并确保你们的版本号释放圈源的控制,所以你可以回滚每当。

  2. 引用大会。强这些名称,所以你可以有多种版本,它所引用的其他集会。使用全名,以参照它们(大会。载)。保留一份最新和最伟大的版本,它在一个地方,其他代码可以参考。

接下来,你有一个选择是否复制的本地的或者不是你的引用。基本上,该折衷归结到-你想要采取补/升级,从你的推荐信吗?有可能是积极的价值在于从获得新的功能,但另一方面,有可能破裂变化。决定在这里,我相信,应在逐案的基础。

虽然发展中Visual Studio,通过默认你将采取的最新版本 汇编 有,但一旦编制的引用大会要求的特定版本,它是编制。

你最后的决定是复制的本地的或者没有。基本上,如果你已经有一个机制,在地方部署所引用的组件,设置这个以错误的。

如果你计划一个大版本的管理体系,你可能会需要把更多的思想和照顾到这一点。我(小店--两人),这个工作正常。我们知道发生了什么事情,并不感到抑制 具有 做事情的方式并不意义。

一旦你到达的运行时,你组装。负载的任何你想到的 应用领域.然后,你可以使用的组件。GetType达到的类型。如果你有一个类型中存在的多个装载的集会(例如在多种版本的同一个项目),可能会得到一个 AmbiguousMatchException 例外。为了解决这些,你会需要得到类型的一个实例会变量,不是静态组件。GetType方法。

其他提示

集会可以共存的GAC(全球会缓),即使他们具有相同的名称,鉴于该版本是不同的。这是如何。净框架运集会的工作。一个要求,即必须满足以为一个组件能够GAC注册的签署。

增加的版本数字的名称,大会刚刚失败的整体目的的组件生态系统和繁琐恕我直言。知道哪个版本的一定会的我只是开放性窗口的检查的版本。

给予不同的名称,以不同的组件版本是最简单的方法和定工作。

如果你会(commonutils.dll)是强命名(即签署),可以考虑安装在GAC(全球会Cache-你可以安装不同的版本相同的会side-by-side在同),因此呼吁程序自动获得适当的版本,从那,因为。净类型包括大会版本的信息。

在你VS项目基准的正确版本的图书馆,但你不要将它部署在应用文件夹;安装它在GAC而是(在应用程序的设置)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top