Jam*_*den 2 .net c# msbuild version-control
在过去,我通常使用变更集或svn编号对二进制文件进行版本控制,例如1.1.123.3,其中大数字是源控制系统的变更集或转速.但是,随着系统即时使用,我们已经远远超过70000+更改集的uint障碍,因此当用作asssembly版本属性或程序集文件版本属性时会导致溢出和编译器错误.请参阅:http: //msdn.microsoft.com/en-us/library/system.reflection.assemblyversionattribute.aspx
还有哪些替代策略仍将二进制文件链接到变更集?
我调整了我的任务,使用给出的解决方案:
<Target Name="Version">
<!-- Changeset exceeds u16int so cannot be used in Versioninfo-->
<Attrib ReadOnly="false" Files="$(VersionFile)"/>
<!--Assembly version must be made of uint16 this means that the version number must less than 65536-->
<!-- current changest is way past this so i will make the number changset-50000 and add a number -->
<!-- so 70000 becomes 20000.1 and 100001 becomes 1.2-->
<PropertyGroup>
<Version>$(Branch).$([MSBuild]::Subtract($(ChangeSet),$(Offset))).$(OffsetCount)</Version>
</PropertyGroup>
<AssemblyInfo CodeLanguage="CS"
OutputFile="$(VersionFile)"
AssemblyCompany="$(Company)"
AssemblyProduct="$(Product)"
AssemblyCopyright="$(Copyright)"
AssemblyVersion="$(Version)"/>
<Attrib ReadOnly="true" Files="$(VersionFile)"/>
</Target>
Run Code Online (Sandbox Code Playgroud)
您可以从0翻转并重新启动,因此您的修订将如下所示revision = 70000 % 50000
.
您也可以使用build
源代码控制修订版的一部分build = 70000 / 50000
.
因此,结果就是x.x.1.20000
这个例子.
归档时间: |
|
查看次数: |
276 次 |
最近记录: |