解决方案下的项目往往需要让生成的程序集版本号统一,最简单的方式当然是打开每一个项目下的AssemblyInfo.cs文件修改,或者使用项目属性修改。最近,发现还有一种更简单的方式,下面仔细介绍它。
步骤1、创建一个SolutionInfo.cs的文件,放到解决方案下。内容类似为:
using System.Reflection;using System.Runtime.CompilerServices;using System.Runtime.InteropServices;[assembly: AssemblyCompany("ProJKY")][assembly: AssemblyProduct("ProJKY Architecture")][assembly: AssemblyCopyright("Copyright ? ProJKY 2013")]// 这里修改你要统一的版本号,注意文件版本号与程序集版本号一致[assembly: AssemblyVersion("2.5.0.6")][assembly: AssemblyFileVersion("2.5.0.6")]
步骤2、将SolutionInfo.cs添加到解决方案中,注意不是任何一个项目下。直接在解决方案资源管理器中,选中解决方案,右键,添加现有项,将SolutionInfo.cs添加进来即可。
步骤3、修改各个项目下的AssemblyInfo.cs,删除其中的版本号等特性信息,在我的例子里面,就是删除下面的几行代码:
[assembly: AssemblyCompany("ProJKY")][assembly: AssemblyProduct("ProJKY Architecture")][assembly: AssemblyCopyright("Copyright ? ProJKY 2013")][assembly: AssemblyVersion("1.0.0.0")][assembly: AssemblyFileVersion("1.0.0.0")]
步骤4、在每个项目上添加已有项,浏览到刚才的SolutionInfo.cs,不要双击,这样要使用特殊的添加方式。需要在添加窗体的添加下拉列表里选择添加为链接。
下面,就可以Build一下,可以看到生成的项目程序集版本号和SolutionInfo.cs设置的一致。
它的原理在于,即使添加的链接文件,也会随项目一起编译,所以对最终生成的程序集版本号起作用。又因为,SolutionInfo.cs只有一个,所以修改起来方便。对于其它类似要共享源代码文件的情况也适用。