main
cs 61 lines 2.18 KB
Raw
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 System;
6 using WixToolset.Data;
7 using WixToolset.Data.Burn;
8
9 public enum NetfxSymbolDefinitionType
10 {
11 NetFxNativeImage,
12 NetFxNetCoreSearch,
13 NetFxDotNetCompatibilityCheck,
14 NetFxNetCoreSdkSearch,
15 NetFxNetCoreSdkFeatureBandSearch,
16 }
17
18 public static partial class NetfxSymbolDefinitions
19 {
20 public static IntermediateSymbolDefinition ByName(string name)
21 {
22 if (!Enum.TryParse(name, out NetfxSymbolDefinitionType type))
23 {
24 return null;
25 }
26
27 return ByType(type);
28 }
29
30 public static IntermediateSymbolDefinition ByType(NetfxSymbolDefinitionType type)
31 {
32 switch (type)
33 {
34 case NetfxSymbolDefinitionType.NetFxNativeImage:
35 return NetfxSymbolDefinitions.NetFxNativeImage;
36
37 case NetfxSymbolDefinitionType.NetFxNetCoreSearch:
38 return NetfxSymbolDefinitions.NetFxNetCoreSearch;
39
40 case NetfxSymbolDefinitionType.NetFxNetCoreSdkSearch:
41 return NetfxSymbolDefinitions.NetFxNetCoreSdkSearch;
42
43 case NetfxSymbolDefinitionType.NetFxNetCoreSdkFeatureBandSearch:
44 return NetfxSymbolDefinitions.NetFxNetCoreSdkFeatureBandSearch;
45
46 case NetfxSymbolDefinitionType.NetFxDotNetCompatibilityCheck:
47 return NetfxSymbolDefinitions.NetFxDotNetCompatibilityCheck;
48
49 default:
50 throw new ArgumentOutOfRangeException(nameof(type));
51 }
52 }
53
54 static NetfxSymbolDefinitions()
55 {
56 NetFxNetCoreSearch.AddTag(BurnConstants.BootstrapperExtensionSearchSymbolDefinitionTag);
57 NetFxNetCoreSdkSearch.AddTag(BurnConstants.BootstrapperExtensionSearchSymbolDefinitionTag);
58 NetFxNetCoreSdkFeatureBandSearch.AddTag(BurnConstants.BootstrapperExtensionSearchSymbolDefinitionTag);
59 }
60 }
61 }