diff options
Diffstat (limited to 'src/ext/NetFx/wixext')
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 | |||
| 3 | namespace 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 | |||
| 21 | namespace 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 | } |
