@@ -5,13 +5,17 @@ namespace Skyline.DataMiner.Sdk.Tasks
5
5
using System . Collections . Generic ;
6
6
using System . Diagnostics ;
7
7
using System . Linq ;
8
+ using System . Security . Cryptography ;
9
+ using System . Text ;
10
+ using System . Text . RegularExpressions ;
8
11
9
12
using Microsoft . Build . Framework ;
10
13
11
14
using Nito . AsyncEx . Synchronous ;
12
15
13
16
using Skyline . AppInstaller ;
14
17
using Skyline . DataMiner . CICD . Common ;
18
+ using Skyline . DataMiner . CICD . DMApp . Common ;
15
19
using Skyline . DataMiner . CICD . FileSystem ;
16
20
using Skyline . DataMiner . CICD . Parsers . Common . VisualStudio . Projects ;
17
21
using Skyline . DataMiner . Sdk . Helpers ;
@@ -274,7 +278,7 @@ private bool TryCreateAppPackageBuilder(PackageCreationData preparedData, DataMi
274
278
if ( dataMinerProjectType != DataMinerProjectType . Package )
275
279
{
276
280
// Use default install script
277
- appPackageBuilder = new AppPackage . AppPackageBuilder ( preparedData . Project . ProjectName , PackageVersion , preparedData . MinimumRequiredDmVersion ) ;
281
+ appPackageBuilder = new AppPackage . AppPackageBuilder ( preparedData . Project . ProjectName , CleanDmappVersion ( PackageVersion ) , preparedData . MinimumRequiredDmVersion ) ;
278
282
return true ;
279
283
}
280
284
@@ -286,10 +290,33 @@ private bool TryCreateAppPackageBuilder(PackageCreationData preparedData, DataMi
286
290
return false ;
287
291
}
288
292
289
- appPackageBuilder = new AppPackage . AppPackageBuilder ( preparedData . Project . ProjectName , PackageVersion , preparedData . MinimumRequiredDmVersion , packageResult . Script ) ;
293
+ appPackageBuilder = new AppPackage . AppPackageBuilder ( preparedData . Project . ProjectName , CleanDmappVersion ( PackageVersion ) , preparedData . MinimumRequiredDmVersion , packageResult . Script ) ;
290
294
return true ;
291
295
}
292
296
297
+ public static string CleanDmappVersion ( string version )
298
+ {
299
+ // Check if version matches a.b.c
300
+ if ( Regex . IsMatch ( version , @"^\d+\.\d+\.\d+$" ) )
301
+ {
302
+ return version ;
303
+ }
304
+
305
+ // Check if version matches a.b.c.d
306
+ if ( Regex . IsMatch ( version , @"^\d+\.\d+\.\d+\.\d+$" ) )
307
+ {
308
+ return DMAppVersion . FromProtocolVersion ( version ) . ToString ( ) ;
309
+ }
310
+
311
+ // Check if version matches a.b.c-text
312
+ if ( Regex . IsMatch ( version , @"^\d+\.\d+\.\d+-\w+$" ) )
313
+ {
314
+ return DMAppVersion . FromPreRelease ( version ) . ToString ( ) ;
315
+ }
316
+
317
+ throw new ArgumentException ( "Invalid version format." ) ;
318
+ }
319
+
293
320
/// <summary>
294
321
/// Cancel the ongoing task.
295
322
/// </summary>
0 commit comments