Skip to content

Commit db8a1db

Browse files
committed
handle versions with different number of elements better
--KSPAssembly and KSPAssemblyDependency may be optionally limited to major.minor --the version number in the .version file is just a direct copy of $(FileVersion) so it may have up to 4 elements
1 parent 2264630 commit db8a1db

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

KSPCommon.targets

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@
9595
<_Parameter2_TypeName>System.Int32</_Parameter2_TypeName>
9696
<_Parameter3>$(FileVersion.Split('.')[1])</_Parameter3>
9797
<_Parameter3_TypeName>System.Int32</_Parameter3_TypeName>
98-
<_Parameter4>$(FileVersion.Split('.')[2])</_Parameter4>
99-
<_Parameter4_TypeName>System.Int32</_Parameter4_TypeName>
98+
<_Parameter4 Condition="$(FileVersion.Split('.').Length) &gt; 2">$(FileVersion.Split('.')[2])</_Parameter4>
99+
<_Parameter4_TypeName Condition="$(FileVersion.Split('.').Length) &gt; 2">System.Int32</_Parameter4_TypeName>
100100
</AssemblyAttribute>
101101
</ItemGroup>
102102
</Target>
@@ -107,15 +107,16 @@
107107
Reference items must have a CKANIdentifier or a KSPAssemblyName.
108108
KSPAssemblyVersion can be optionally specified.
109109
Otherwise CKANVersion is used.
110-
Otherwise 0.0.0 is used (no minimum version)
110+
Otherwise 0.0 is used (no minimum version)
111111
-->
112112
<Target Name="GenerateKSPAssemblyDependencyAttributes" BeforeTargets="CoreGenerateAssemblyInfo"
113113
Condition="'$(GenerateKSPAssemblyDependencyAttributes)' == 'true'">
114114
<ItemGroup>
115115
<Reference Update="%(Reference.identity)" Condition="'%(Reference.CKANIdentifier)%(Reference.KSPAssemblyName)' != ''">
116116
<KSPAssemblyName Condition="'%(Reference.KSPAssemblyName)' == ''">$([System.String]::Copy('%(Reference.identity)').Split(',')[0])</KSPAssemblyName>
117117
<KSPAssemblyVersion Condition="'%(Reference.KSPAssemblyVersion)' == ''">%(Reference.CKANVersion)</KSPAssemblyVersion>
118-
<KSPAssemblyVersion Condition="'%(Reference.KSPAssemblyVersion)' == ''">0.0.0</KSPAssemblyVersion>
118+
<KSPAssemblyVersion Condition="'%(Reference.KSPAssemblyVersion)' == ''">0.0</KSPAssemblyVersion>
119+
<KSPAssemblyVersionElementCount>$([System.String]::Copy('%(Reference.KSPAssemblyVersion)').Split('.').Length)</KSPAssemblyVersionElementCount>
119120
</Reference>
120121
</ItemGroup>
121122
<ItemGroup>
@@ -126,8 +127,8 @@
126127
<_Parameter2_TypeName>System.Int32</_Parameter2_TypeName>
127128
<_Parameter3>$([System.String]::Copy('%(Reference.KSPAssemblyVersion)').Split('.')[1])</_Parameter3>
128129
<_Parameter3_TypeName>System.Int32</_Parameter3_TypeName>
129-
<_Parameter4>$([System.String]::Copy('%(Reference.KSPAssemblyVersion)').Split('.')[2])</_Parameter4>
130-
<_Parameter4_TypeName>System.Int32</_Parameter4_TypeName>
130+
<_Parameter4 Condition="%(Reference.KSPAssemblyVersionElementCount) &gt; 2">$([System.String]::Copy('%(Reference.KSPAssemblyVersion)').Split('.')[2])</_Parameter4>
131+
<_Parameter4_TypeName Condition="%(Reference.KSPAssemblyVersionElementCount) &gt; 2">System.Int32</_Parameter4_TypeName>
131132
</AssemblyAttribute>
132133
</ItemGroup>
133134
</Target>
@@ -145,7 +146,7 @@
145146
<ItemGroup>
146147
<KSPVersionFile Update="@(KSPVersionFile)">
147148
<Name Condition="'%(KSPVersionFile.Name)' == ''">$(ProjectName)</Name>
148-
<Version Condition="'%(KSPVersionFile.Version)' == ''">$(FileVersion.Split(`.`)[0]).$(FileVersion.Split(`.`)[1]).$(FileVersion.Split(`.`)[2])</Version>
149+
<Version Condition="'%(KSPVersionFile.Version)' == ''">$(FileVersion)</Version>
149150
</KSPVersionFile>
150151
</ItemGroup>
151152
<ReadLinesFromFile File="%(KSPVersionFile.identity)" Condition="Exists('@(KSPVersionFile)')">

0 commit comments

Comments
 (0)