我最近对我的产品(exe)进行了版本控制,并在assemblyinfo.cs中每次增加构建号。这很好用,我的产品目前是1.5.x.x版本,所以每次成功构建后我都会增加4位数字。现在我有了我的DLL文件,它们也是我的应用程序的一部分。我应该如何为它们命名版本号?我应该像我的exe一样将它们命名为1.5.x.x,还是应该创建另一个不同的版本号?这就是我目前有点困惑的地方。当我的产品功能增强时,我可以将1.5提高到2.0,但这会让我的DLL文件怎么办?
我认为你需要单独管理它们的版本。
因为两个应用程序(EXE)可以使用相同的DLL。 那么DLL的版本将是什么?
DLL的版本应该与运行它的EXE无关。
你提到了一个非常广泛的话题,它可以变得像你允许的那样复杂。
最终,你选择的版本控制方法将取决于你需要实现什么以及你分配给维护它的时间有多少。这两者直接相关。
版本控制的两个主要目标是并行执行和跟踪。 并行执行(SxS)允许同一DLL的多个版本在同一应用程序中执行。如果不更改程序集版本号,则无法实现此目标。 跟踪只是能够确定正在客户机器上运行的确切代码快照。 通过更改程序集版本,两者都可以实现,但第一个目标只能通过更改程序集版本来实现。
许多人会建议你在所有DLL / EXE之间共享版本号-这是一种很好的方法,因为它是最简单的方法,但它也实现了最少的部署灵活性。
例如,如果您正在使用任何形式的合同抽象(通过接口而不是具体类型定义DLL之间的依赖关系),则可以将应用程序拆分为多个“版本隔离区”。 其中一个例子是客户端和服务器,其中依赖关系在第三个程序集中定义,即WCF合同。如果它们都单独进行版本控制,则可以发布新版本的服务器(只要符合相同的合同),而不影响客户端。反之亦然。