我们使用tfs / teambuild和msbuild对我们的软件进行了自动构建和QA流程,并且我们希望能够知道(出于审计目的)组件是否已经完成该过程。
例如,如果在用户的计算机上安装了库,我希望能够以某种方式检查它,以告知它已经完成了构建。特别是,我希望能够将其与直接在开发人员的计算机上构建的组件区分开来,然后手动安装。
最好的方法是什么?代码签名作为构建过程的一部分似乎最接近这些要求,但可能这不会涵盖可能使用的任何第三方库?我还阅读了ILMerge工具,将所有程序集合并为一个,但后来我不知道是否可以签名或不签名?
我确信我们不是第一个有这个要求的人,所以要抓住那些可能做过这样事情的人的想法或暗示
谢谢!
答案 0 :(得分:2)
我们的开发人员构建设置为将版本保持为“0.0.0.0”,但我们的构建服务器根据预配置版本和自动生成的构建字符串标记构建。 “1.0.3.xxx”。您的构建服务器不允许这样做吗?
答案 1 :(得分:0)
您的构建过程应该更新您的每个项目assemblyinfo.cs文件(或全局链接的等效文件),您可以使用TFS变更集编号执行此操作,因此就像前面的海报所示,您最终得到每个dll上的属性1.0.changeset.buildno或类似的东西。您可以在msbuild中轻松完成此操作。 您可以将源代码管理中设置的每个程序集信息文件的值显示为0或999之类的明显值。
尽管如此,你要求的很多关于过程和培训的内容。 如果您使用安装程序或zips打包您的可交付成果,那么您也可以使用内部版本号标记它们作为构建过程的一部分。 但是如果你有变更集你有dll到代码的链接,那么可追溯,再加上每个csproj中定义的第三方dll引用的链接。