Foo.Bar.Client
Foo.Common
Foo.Bar.Client
依赖于 Foo.Common
中的组件。而且,Foo.Common
没有自己的配置文件;它的设置存储在使用它的客户端应用程序的配置文件中,即 Foo.Bar.Client
。
因此,Foo.Bar.Client
的配置文件包含
<configSections>
<section name="BletchConfiguration"
type="Foo.Common.Bletch, Version=1.1.0.0, ..."/>
....
</configSections>
我被委托调整我们的版本编号,使“修订”部分对应于最新的更改集(在我们的情况下,使用Subversion,即HEAD修订号),例如从“1.1.0.0”到“1.1.0.12345”。
因此,我按照这里描述的方式实现了一个“共享”的程序集版本信息模块。并修改了我们的NAnt构建脚本以获取版本号并更新共享的程序集信息文件。
然而,我没有考虑到版本号嵌入到配置文件中的情况。是否有一种(相对)轻松的方法自动更新配置文件中的版本号?
显然,我可以将“公共”程序集拆分为单独的解决方案。
我还可以使用IoC配置公共组件,这将消除程序集特定配置部分的需要。
但是,这两种方法都涉及一些风险和时间...这两者都希望尽可能避免(至少目前是这样)。