VSTS Build gernerates error CS0647

 

Sie erzeugen tägliche Builds in VSTS und nutzen den AssemblyInfoTask,

um die File und Assembly Build Version im Format YMMDD zu erzeugen.

 

Ab 2007 erhalten Sie folgenden Fehler:  

 

CSC(0,0): warning CS1607: Assembly generation --
The version '1.0.70108.0' specified for the 'file version' is not in the normal

'major.minor.build.revision' format Properties\AssemblyInfo.cs(32,12):
error CS0647: Error emitting 'System.Reflection.AssemblyVersionAttribute' attribute --
'The version specified '1.0.70108.0' is invalid'

 

Ursache hierfür ist die Tatsache, dass ein 16bit Int für die build version verwendet wird

und so ein Limit von 65535 vorliegt. Na dann ist auch klar warum der 8 Jan 2007 = 70108

zum Fehler führt. Warum dies so ist erklärt Neil Enns

 

Eine Lösung für das Problem ist zum Beispiel das Format zu ändern:

 

<AssemblyFileBuildNumberType>DateString</AssemblyFileBuildNumberType>

<AssemblyFileBuildNumberFormat>01MMdd</AssemblyFileBuildNumberFormat>

In diesem Fall wird

10108 als build Nummer erzeugt.

Eine andere Option ist eine fortlaufende Build Nummer zu verwenden und auf das
Datum zu verzichten:

<AssemblyFileBuildNumberType>AutoIncrement</AssemblyFileBuildNumberType>
<AssemblyFileBuildNumberFormat>0</AssemblyFileBuildNumberFormat>

Viel Spass

Chris