Osc*_*ros 22 .net versioning git
我正在研究一个项目(只有我),我已经知道如何处理它的版本控制.我正在使用经典<major>.<minor>.<build or patch>
.
我遇到的问题是我希望在我的一些提交中有标记指向相应的版本,但我不想手动执行.
现在我正在做:
v0.2.13
,我改变AssemblyInfo.cs
并设置该版本v0.2.13
在Git上添加标签(手动).zip
文件(不是所有时间)并命名为ProjectName v0.2.13
我做错了吗?
我可以轻松地创建一个脚本来自动完成最后一步,但我想知道是否有一个关于自动化其他部分的良好实践?
我在MSBuild中有一个构建脚本,它自动检索当前检出的git提交,然后在构建时将这样的属性添加到程序集中:
[assembly: AssemblyInformationalVersion("0.2.13+e3a6f2c1")]
[assembly: AssemblyVersion("0.2")]
[assembly: AssemblyFileVersion("0.2.13")]
Run Code Online (Sandbox Code Playgroud)
该版本的数字部分来自我的构建脚本读取的version.txt文件.
程序集版本缺少第3个八位字节,因为它可以在增加构建号时避免绑定重定向要求.AssemblyFileVersion包含该属性允许的所有数据,AssemblyInformationVersion可以是您想要的任何字符串,因此使用语义版本控制来包含git commit id可以准确指出构建此项目的源版本.
然后,在构建成功后,您可以根据需要添加v0.2.13标记.就个人而言,只要我构建最终版本,我就会增加version.txt文件,以便所有后续版本都具有下一个更高版本号.之后的每个构建都将具有该版本,直到我发布该版本,标记提交,再次递增version.txt文件,然后重复.
顺便说一句,该AssemblyInformationalVersion
字符串出现在Windows资源管理器的文件属性中,因此这提供了从任意构建的二进制文件到匹配的原始源代码的保证方式.此外,不幸的是,这种方法导致csc.exe报告AL ???? 构建警告,因为语义版本格式不符合xyz语法.这并不意味着任何事情都被打破了,我只是忽略了警告.
我从来没有明确压缩源代码,因为这对源代码管理的责任是多余的.至少如果您的源是由某些在线服务托管的(甚至在您的专用Intranet上),大多数git主机已经为给定的提交ID提供了即时下载-as-zip功能.
我已成功地使用以下步骤来完成类似的事情:
您可以使用提交后挂钩来标记您的分支并推送到 TeamCity 服务器。
归档时间: |
|
查看次数: |
2921 次 |
最近记录: |