summaryrefslogtreecommitdiff
path: root/src/ext/NetFx/wixext
diff options
context:
space:
mode:
authorStaffan Gustafsson <staffangu@outlook.com>2022-11-30 17:15:12 +0100
committerSean Hall <r.sean.hall@gmail.com>2023-01-18 18:10:56 -0600
commit853887b4e84df1965794802b7683f3a9aca3e930 (patch)
treec2db272b63381c94186712c0029ed0e000ec3391 /src/ext/NetFx/wixext
parent9f368d76848e31d21ec3c193fa8c92849b1362a1 (diff)
downloadwix-853887b4e84df1965794802b7683f3a9aca3e930.tar.gz
wix-853887b4e84df1965794802b7683f3a9aca3e930.tar.bz2
wix-853887b4e84df1965794802b7683f3a9aca3e930.zip
Adding support for DotNetCoreSdkSearch and DotNetCoreSdkCompatibilityCheck
Diffstat (limited to 'src/ext/NetFx/wixext')
-rw-r--r--src/ext/NetFx/wixext/NetFxCompiler.cs293
-rw-r--r--src/ext/NetFx/wixext/NetfxTableDefinitions.cs2
-rw-r--r--src/ext/NetFx/wixext/Symbols/NetFxDotNetCompatibilityCheckSymbol.cs34
-rw-r--r--src/ext/NetFx/wixext/Symbols/NetFxNetCoreSearchSdkSymbol.cs64
-rw-r--r--src/ext/NetFx/wixext/Symbols/NetfxSymbolDefinitions.cs9
5 files changed, 329 insertions, 73 deletions
diff --git a/src/ext/NetFx/wixext/NetFxCompiler.cs b/src/ext/NetFx/wixext/NetFxCompiler.cs
index 563cd19d..7a37cf90 100644
--- a/src/ext/NetFx/wixext/NetFxCompiler.cs
+++ b/src/ext/NetFx/wixext/NetFxCompiler.cs
@@ -49,6 +49,12 @@ namespace WixToolset.Netfx
49 case "DotNetCoreSearchRef": 49 case "DotNetCoreSearchRef":
50 this.ParseDotNetCoreSearchRefElement(intermediate, section, element); 50 this.ParseDotNetCoreSearchRefElement(intermediate, section, element);
51 break; 51 break;
52 case "DotNetCoreSdkSearch":
53 this.ParseDotNetCoreSdkSearchElement(intermediate, section, element);
54 break;
55 case "DotNetCoreSdkSearchRef":
56 this.ParseDotNetCoreSdkSearchRefElement(intermediate, section, element);
57 break;
52 case "DotNetCompatibilityCheck": 58 case "DotNetCompatibilityCheck":
53 this.ParseDotNetCompatibilityCheckElement(intermediate, section, element); 59 this.ParseDotNetCompatibilityCheckElement(intermediate, section, element);
54 break; 60 break;
@@ -69,6 +75,12 @@ namespace WixToolset.Netfx
69 case "DotNetCoreSearchRef": 75 case "DotNetCoreSearchRef":
70 this.ParseDotNetCoreSearchRefElement(intermediate, section, element); 76 this.ParseDotNetCoreSearchRefElement(intermediate, section, element);
71 break; 77 break;
78 case "DotNetCoreSdkSearch":
79 this.ParseDotNetCoreSdkSearchElement(intermediate, section, element);
80 break;
81 case "DotNetCoreSdkSearchRef":
82 this.ParseDotNetCoreSdkSearchRefElement(intermediate, section, element);
83 break;
72 default: 84 default:
73 this.ParseHelper.UnexpectedElement(parentElement, element); 85 this.ParseHelper.UnexpectedElement(parentElement, element);
74 break; 86 break;
@@ -248,6 +260,137 @@ namespace WixToolset.Netfx
248 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element); 260 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element);
249 } 261 }
250 262
263 private void ParseDotNetCoreSdkSearchElement(Intermediate intermediate, IntermediateSection section, XElement element)
264 {
265 var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
266 Identifier id = null;
267 string variable = null;
268 string condition = null;
269 string after = null;
270 NetCoreSdkSearchPlatform? platform = null;
271 string version = null;
272
273 foreach (var attrib in element.Attributes())
274 {
275 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
276 {
277 switch (attrib.Name.LocalName)
278 {
279 case "Id":
280 id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib);
281 break;
282 case "Variable":
283 variable = this.ParseHelper.GetAttributeBundleVariableNameValue(sourceLineNumbers, attrib);
284 break;
285 case "Condition":
286 condition = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
287 break;
288 case "After":
289 after = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
290 break;
291 case "Platform":
292 var platformValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
293 switch (platformValue)
294 {
295 case "arm64":
296 platform = NetCoreSdkSearchPlatform.Arm64;
297 break;
298 case "x64":
299 platform = NetCoreSdkSearchPlatform.X64;
300 break;
301 case "x86":
302 platform = NetCoreSdkSearchPlatform.X86;
303 break;
304 default:
305 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName, "Platform", platformValue, "arm64", "x64", "x86"));
306 break;
307 }
308 break;
309 case "Version":
310 // .NET Core had a different deployment strategy before .NET Core 3.0 which would require different detection logic.
311 version = this.ParseHelper.GetAttributeVersionValue(sourceLineNumbers, attrib);
312 break;
313 default:
314 this.ParseHelper.UnexpectedAttribute(element, attrib);
315 break;
316 }
317 }
318 else
319 {
320 this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, element, attrib);
321 }
322 }
323
324 if (id == null)
325 {
326 id = this.ParseHelper.CreateIdentifier("dncss", variable, condition, after);
327 }
328
329 if (!platform.HasValue)
330 {
331 this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Platform"));
332 }
333
334
335 if (String.IsNullOrEmpty(version))
336 {
337 this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Version"));
338 }
339
340 var ver = Version.Parse(version);
341 if (ver.Major == 4)
342 {
343 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName, "Version", version, "3.*", "5+.*"));
344 }
345
346 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element);
347
348 var bundleExtensionId = this.ParseHelper.CreateIdentifierValueFromPlatform("Wix4NetfxBundleExtension", this.Context.Platform, BurnPlatforms.X86 | BurnPlatforms.X64 | BurnPlatforms.ARM64);
349 if (bundleExtensionId == null)
350 {
351 this.Messaging.Write(ErrorMessages.UnsupportedPlatformForElement(sourceLineNumbers, this.Context.Platform.ToString(), element.Name.LocalName));
352 }
353
354 if (!this.Messaging.EncounteredError)
355 {
356 this.ParseHelper.CreateWixSearchSymbol(section, sourceLineNumbers, element.Name.LocalName, id, variable, condition, after, bundleExtensionId);
357
358 section.AddSymbol(new NetFxNetCoreSdkSearchSymbol(sourceLineNumbers, id)
359 {
360 Platform = platform.Value,
361 Version = version,
362 });
363 }
364 }
365
366 private void ParseDotNetCoreSdkSearchRefElement(Intermediate intermediate, IntermediateSection section, XElement element)
367 {
368 var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
369
370 foreach (var attrib in element.Attributes())
371 {
372 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
373 {
374 switch (attrib.Name.LocalName)
375 {
376 case "Id":
377 var refId = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
378 this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, NetfxSymbolDefinitions.NetFxNetCoreSdkSearch, refId);
379 break;
380 default:
381 this.ParseHelper.UnexpectedAttribute(element, attrib);
382 break;
383 }
384 }
385 else
386 {
387 this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, element, attrib);
388 }
389 }
390
391 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element);
392 }
393
251 /// <summary> 394 /// <summary>
252 /// Parses a NativeImage element. 395 /// Parses a NativeImage element.
253 /// </summary> 396 /// </summary>
@@ -389,66 +532,19 @@ namespace WixToolset.Netfx
389 property = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); 532 property = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
390 break; 533 break;
391 case "RuntimeType": 534 case "RuntimeType":
392 runtimeType = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); 535 runtimeType = this.ParseRuntimeType(element, sourceLineNumbers, attrib);
393 switch (runtimeType.ToLower())
394 {
395 case "aspnet":
396 runtimeType = "Microsoft.AspNetCore.App";
397 break;
398 case "desktop":
399 runtimeType = "Microsoft.WindowsDesktop.App";
400 break;
401 case "core":
402 runtimeType = "Microsoft.NETCore.App";
403 break;
404 default:
405 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName, attrib.Name.LocalName, runtimeType, "aspnet", "desktop", "core"));
406 break;
407 }
408 break; 536 break;
409 case "Platform": 537 case "Platform":
410 platform = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); 538 platform = this.ParsePlatform(element, sourceLineNumbers, attrib);
411 switch (platform.ToLower()) 539 break;
412 { 540 case "FeatureBand":
413 case "x86": 541 platform = this.ParseFeatureBand(element, sourceLineNumbers, attrib);
414 case "x64":
415 case "arm64":
416 platform = platform.ToLower();
417 break;
418 default:
419 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName, attrib.Name.LocalName, platform, "x86", "x64", "arm64"));
420 break;
421 }
422 break; 542 break;
423 case "Version": 543 case "Version":
424 version = this.ParseHelper.GetAttributeVersionValue(sourceLineNumbers, attrib); 544 version = this.ParseHelper.GetAttributeVersionValue(sourceLineNumbers, attrib);
425 break; 545 break;
426 case "RollForward": 546 case "RollForward":
427 rollForward = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); 547 rollForward = this.ParseRollForward(element, sourceLineNumbers, attrib);
428 switch (rollForward.ToLowerInvariant())
429 {
430 case "latestmajor":
431 rollForward = "LatestMajor";
432 break;
433 case "major":
434 rollForward = "Major";
435 break;
436 case "latestminor":
437 rollForward = "LatestMinor";
438 break;
439 case "minor":
440 rollForward = "Minor";
441 break;
442 case "latestpatch":
443 rollForward = "LatestPatch";
444 break;
445 case "disable":
446 rollForward = "Disable";
447 break;
448 default:
449 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName, attrib.Name.LocalName, rollForward, "latestmajor", "major", "latestminor", "minor", "latestpatch", "disable"));
450 break;
451 }
452 break; 548 break;
453 default: 549 default:
454 this.ParseHelper.UnexpectedAttribute(element, attrib); 550 this.ParseHelper.UnexpectedAttribute(element, attrib);
@@ -503,6 +599,97 @@ namespace WixToolset.Netfx
503 } 599 }
504 } 600 }
505 601
602 private string ParseRollForward(XElement element, SourceLineNumber sourceLineNumbers, XAttribute attrib)
603 {
604 string rollForward;
605 rollForward = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
606 switch (rollForward.ToLowerInvariant())
607 {
608 case "latestmajor":
609 rollForward = "LatestMajor";
610 break;
611 case "major":
612 rollForward = "Major";
613 break;
614 case "latestminor":
615 rollForward = "LatestMinor";
616 break;
617 case "minor":
618 rollForward = "Minor";
619 break;
620 case "latestpatch":
621 rollForward = "LatestPatch";
622 break;
623 case "disable":
624 rollForward = "Disable";
625 break;
626 default:
627 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName,
628 attrib.Name.LocalName, rollForward, "latestmajor", "major", "latestminor", "minor", "latestpatch", "disable"));
629 break;
630 }
631
632 return rollForward;
633 }
634
635 private string ParsePlatform(XElement element, SourceLineNumber sourceLineNumbers, XAttribute attrib)
636 {
637 string platform;
638 platform = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
639 switch (platform.ToLower())
640 {
641 case "x86":
642 case "x64":
643 case "arm64":
644 platform = platform.ToLower();
645 break;
646 default:
647 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName,
648 attrib.Name.LocalName, platform, "x86", "x64", "arm64"));
649 break;
650 }
651
652 return platform;
653 }
654
655 private string ParseFeatureBand(XElement element, SourceLineNumber sourceLineNumbers, XAttribute attrib)
656 {
657 string featureBand = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
658
659 if (!Int32.TryParse(featureBand, out var intFeatureBand) || (100 > intFeatureBand) || (intFeatureBand > 999))
660 {
661 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName,
662 attrib.Name.LocalName, featureBand, "An integer in the range [100 - 999]"));
663
664 }
665
666 return featureBand;
667 }
668
669 private string ParseRuntimeType(XElement element, SourceLineNumber sourceLineNumbers, XAttribute attrib)
670 {
671 var runtimeType = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
672 switch (runtimeType.ToLower())
673 {
674 case "aspnet":
675 runtimeType = "Microsoft.AspNetCore.App";
676 break;
677 case "desktop":
678 runtimeType = "Microsoft.WindowsDesktop.App";
679 break;
680 case "core":
681 runtimeType = "Microsoft.NETCore.App";
682 break;
683 default:
684 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName,
685 attrib.Name.LocalName, runtimeType, "aspnet", "desktop", "core"));
686 break;
687 }
688
689 return runtimeType;
690 }
691
692
506 /// <summary> 693 /// <summary>
507 /// Parses a DotNetCompatibilityCheckRef element. 694 /// Parses a DotNetCompatibilityCheckRef element.
508 /// </summary> 695 /// </summary>
diff --git a/src/ext/NetFx/wixext/NetfxTableDefinitions.cs b/src/ext/NetFx/wixext/NetfxTableDefinitions.cs
index 6be1abe7..114275c3 100644
--- a/src/ext/NetFx/wixext/NetfxTableDefinitions.cs
+++ b/src/ext/NetFx/wixext/NetfxTableDefinitions.cs
@@ -40,7 +40,7 @@ namespace WixToolset.Netfx
40 public static readonly TableDefinition[] All = new[] 40 public static readonly TableDefinition[] All = new[]
41 { 41 {
42 NetFxNativeImage, 42 NetFxNativeImage,
43 NetFxDotNetCompatibilityCheck 43 NetFxDotNetCompatibilityCheck,
44 }; 44 };
45 } 45 }
46} 46}
diff --git a/src/ext/NetFx/wixext/Symbols/NetFxDotNetCompatibilityCheckSymbol.cs b/src/ext/NetFx/wixext/Symbols/NetFxDotNetCompatibilityCheckSymbol.cs
index a46cf17f..ea1b16c5 100644
--- a/src/ext/NetFx/wixext/Symbols/NetFxDotNetCompatibilityCheckSymbol.cs
+++ b/src/ext/NetFx/wixext/Symbols/NetFxDotNetCompatibilityCheckSymbol.cs
@@ -11,11 +11,11 @@ namespace WixToolset.Netfx
11 NetfxSymbolDefinitionType.NetFxDotNetCompatibilityCheck.ToString(), 11 NetfxSymbolDefinitionType.NetFxDotNetCompatibilityCheck.ToString(),
12 new[] 12 new[]
13 { 13 {
14 new IntermediateFieldDefinition(nameof(NetFxDotNetCompatibilityCheckSymbollFields.RuntimeType), IntermediateFieldType.String), 14 new IntermediateFieldDefinition(nameof(NetFxDotNetCompatibilityCheckSymbolFields.RuntimeType), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(NetFxDotNetCompatibilityCheckSymbollFields.Platform), IntermediateFieldType.String), 15 new IntermediateFieldDefinition(nameof(NetFxDotNetCompatibilityCheckSymbolFields.Platform), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(NetFxDotNetCompatibilityCheckSymbollFields.Version), IntermediateFieldType.String), 16 new IntermediateFieldDefinition(nameof(NetFxDotNetCompatibilityCheckSymbolFields.Version), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(NetFxDotNetCompatibilityCheckSymbollFields.RollForward), IntermediateFieldType.String), 17 new IntermediateFieldDefinition(nameof(NetFxDotNetCompatibilityCheckSymbolFields.RollForward), IntermediateFieldType.String),
18 new IntermediateFieldDefinition(nameof(NetFxDotNetCompatibilityCheckSymbollFields.Property), IntermediateFieldType.String), 18 new IntermediateFieldDefinition(nameof(NetFxDotNetCompatibilityCheckSymbolFields.Property), IntermediateFieldType.String),
19 }, 19 },
20 typeof(NetFxDotNetCompatibilityCheckSymbol)); 20 typeof(NetFxDotNetCompatibilityCheckSymbol));
21 } 21 }
@@ -25,7 +25,7 @@ namespace WixToolset.Netfx.Symbols
25{ 25{
26 using WixToolset.Data; 26 using WixToolset.Data;
27 27
28 public enum NetFxDotNetCompatibilityCheckSymbollFields 28 public enum NetFxDotNetCompatibilityCheckSymbolFields
29 { 29 {
30 RuntimeType, 30 RuntimeType,
31 Platform, 31 Platform,
@@ -44,36 +44,36 @@ namespace WixToolset.Netfx.Symbols
44 { 44 {
45 } 45 }
46 46
47 public IntermediateField this[NetFxDotNetCompatibilityCheckSymbollFields index] => this.Fields[(int)index]; 47 public IntermediateField this[NetFxDotNetCompatibilityCheckSymbolFields index] => this.Fields[(int)index];
48 48
49 public string RuntimeType 49 public string RuntimeType
50 { 50 {
51 get => this.Fields[(int)NetFxDotNetCompatibilityCheckSymbollFields.RuntimeType].AsString(); 51 get => this.Fields[(int)NetFxDotNetCompatibilityCheckSymbolFields.RuntimeType].AsString();
52 set => this.Set((int)NetFxDotNetCompatibilityCheckSymbollFields.RuntimeType, value); 52 set => this.Set((int)NetFxDotNetCompatibilityCheckSymbolFields.RuntimeType, value);
53 } 53 }
54 54
55 public string Platform 55 public string Platform
56 { 56 {
57 get => this.Fields[(int)NetFxDotNetCompatibilityCheckSymbollFields.Platform].AsString(); 57 get => this.Fields[(int)NetFxDotNetCompatibilityCheckSymbolFields.Platform].AsString();
58 set => this.Set((int)NetFxDotNetCompatibilityCheckSymbollFields.Platform, value); 58 set => this.Set((int)NetFxDotNetCompatibilityCheckSymbolFields.Platform, value);
59 } 59 }
60 60
61 public string Version 61 public string Version
62 { 62 {
63 get => this.Fields[(int)NetFxDotNetCompatibilityCheckSymbollFields.Version].AsString(); 63 get => this.Fields[(int)NetFxDotNetCompatibilityCheckSymbolFields.Version].AsString();
64 set => this.Set((int)NetFxDotNetCompatibilityCheckSymbollFields.Version, value); 64 set => this.Set((int)NetFxDotNetCompatibilityCheckSymbolFields.Version, value);
65 } 65 }
66 66
67 public string RollForward 67 public string RollForward
68 { 68 {
69 get => this.Fields[(int)NetFxDotNetCompatibilityCheckSymbollFields.RollForward].AsString(); 69 get => this.Fields[(int)NetFxDotNetCompatibilityCheckSymbolFields.RollForward].AsString();
70 set => this.Set((int)NetFxDotNetCompatibilityCheckSymbollFields.RollForward, value); 70 set => this.Set((int)NetFxDotNetCompatibilityCheckSymbolFields.RollForward, value);
71 } 71 }
72 72
73 public string Property 73 public string Property
74 { 74 {
75 get => this.Fields[(int)NetFxDotNetCompatibilityCheckSymbollFields.Property].AsString(); 75 get => this.Fields[(int)NetFxDotNetCompatibilityCheckSymbolFields.Property].AsString();
76 set => this.Set((int)NetFxDotNetCompatibilityCheckSymbollFields.Property, value); 76 set => this.Set((int)NetFxDotNetCompatibilityCheckSymbolFields.Property, value);
77 } 77 }
78 } 78 }
79} 79}
diff --git a/src/ext/NetFx/wixext/Symbols/NetFxNetCoreSearchSdkSymbol.cs b/src/ext/NetFx/wixext/Symbols/NetFxNetCoreSearchSdkSymbol.cs
new file mode 100644
index 00000000..86b750ea
--- /dev/null
+++ b/src/ext/NetFx/wixext/Symbols/NetFxNetCoreSearchSdkSymbol.cs
@@ -0,0 +1,64 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3namespace WixToolset.Netfx
4{
5 using WixToolset.Data;
6 using WixToolset.Netfx.Symbols;
7
8 public static partial class NetfxSymbolDefinitions
9 {
10 public static readonly IntermediateSymbolDefinition NetFxNetCoreSdkSearch = new IntermediateSymbolDefinition(
11 NetfxSymbolDefinitionType.NetFxNetCoreSdkSearch.ToString(),
12 new[]
13 {
14 new IntermediateFieldDefinition(nameof(NetFxNetCoreSdkSearchSymbolFields.Platform), IntermediateFieldType.Number),
15 new IntermediateFieldDefinition(nameof(NetFxNetCoreSdkSearchSymbolFields.Version), IntermediateFieldType.String),
16 },
17 typeof(NetFxNetCoreSearchSymbol));
18 }
19}
20
21namespace WixToolset.Netfx.Symbols
22{
23 using WixToolset.Data;
24
25
26 public enum NetCoreSdkSearchPlatform
27 {
28 X86,
29 X64,
30 Arm64,
31 }
32
33 public enum NetFxNetCoreSdkSearchSymbolFields
34 {
35 Platform,
36 Version,
37 }
38
39
40 public class NetFxNetCoreSdkSearchSymbol : IntermediateSymbol
41 {
42 public NetFxNetCoreSdkSearchSymbol() : base(NetfxSymbolDefinitions.NetFxNetCoreSdkSearch, null, null)
43 {
44 }
45
46 public NetFxNetCoreSdkSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(NetfxSymbolDefinitions.NetFxNetCoreSdkSearch, sourceLineNumber, id)
47 {
48 }
49
50 public IntermediateField this[NetFxNetCoreSdkSearchSymbolFields index] => this.Fields[(int)index];
51
52 public NetCoreSdkSearchPlatform Platform
53 {
54 get => (NetCoreSdkSearchPlatform)this.Fields[(int)NetFxNetCoreSdkSearchSymbolFields.Platform].AsNumber();
55 set => this.Set((int)NetFxNetCoreSdkSearchSymbolFields.Platform, (int)value);
56 }
57
58 public string Version
59 {
60 get => this.Fields[(int)NetFxNetCoreSdkSearchSymbolFields.Version].AsString();
61 set => this.Set((int)NetFxNetCoreSdkSearchSymbolFields.Version, value);
62 }
63 }
64}
diff --git a/src/ext/NetFx/wixext/Symbols/NetfxSymbolDefinitions.cs b/src/ext/NetFx/wixext/Symbols/NetfxSymbolDefinitions.cs
index ad729dd4..00c52f9e 100644
--- a/src/ext/NetFx/wixext/Symbols/NetfxSymbolDefinitions.cs
+++ b/src/ext/NetFx/wixext/Symbols/NetfxSymbolDefinitions.cs
@@ -10,7 +10,8 @@ namespace WixToolset.Netfx
10 { 10 {
11 NetFxNativeImage, 11 NetFxNativeImage,
12 NetFxNetCoreSearch, 12 NetFxNetCoreSearch,
13 NetFxDotNetCompatibilityCheck 13 NetFxNetCoreSdkSearch,
14 NetFxDotNetCompatibilityCheck,
14 } 15 }
15 16
16 public static partial class NetfxSymbolDefinitions 17 public static partial class NetfxSymbolDefinitions
@@ -36,7 +37,10 @@ namespace WixToolset.Netfx
36 37
37 case NetfxSymbolDefinitionType.NetFxNetCoreSearch: 38 case NetfxSymbolDefinitionType.NetFxNetCoreSearch:
38 return NetfxSymbolDefinitions.NetFxNetCoreSearch; 39 return NetfxSymbolDefinitions.NetFxNetCoreSearch;
39 40
41 case NetfxSymbolDefinitionType.NetFxNetCoreSdkSearch:
42 return NetfxSymbolDefinitions.NetFxNetCoreSdkSearch;
43
40 case NetfxSymbolDefinitionType.NetFxDotNetCompatibilityCheck: 44 case NetfxSymbolDefinitionType.NetFxDotNetCompatibilityCheck:
41 return NetfxSymbolDefinitions.NetFxDotNetCompatibilityCheck; 45 return NetfxSymbolDefinitions.NetFxDotNetCompatibilityCheck;
42 46
@@ -48,6 +52,7 @@ namespace WixToolset.Netfx
48 static NetfxSymbolDefinitions() 52 static NetfxSymbolDefinitions()
49 { 53 {
50 NetFxNetCoreSearch.AddTag(BurnConstants.BundleExtensionSearchSymbolDefinitionTag); 54 NetFxNetCoreSearch.AddTag(BurnConstants.BundleExtensionSearchSymbolDefinitionTag);
55 NetFxNetCoreSdkSearch.AddTag(BurnConstants.BundleExtensionSearchSymbolDefinitionTag);
51 } 56 }
52 } 57 }
53} 58}