diff options
| author | Bob Arnson <bob@firegiant.com> | 2021-12-22 23:52:40 -0500 |
|---|---|---|
| committer | Bob Arnson <github@bobs.org> | 2021-12-23 12:32:16 -0500 |
| commit | b9c712f26d921f7ffe0509d1cc45456680e8139f (patch) | |
| tree | 0cb80095c6c9ffe0c01ab9a723c25fd228a48649 /src/ext/VisualStudio/wixext | |
| parent | 2f744bf58cc4edb5a712bfff8e7e42baba81768d (diff) | |
| download | wix-b9c712f26d921f7ffe0509d1cc45456680e8139f.tar.gz wix-b9c712f26d921f7ffe0509d1cc45456680e8139f.tar.bz2 wix-b9c712f26d921f7ffe0509d1cc45456680e8139f.zip | |
Version extension ids.
https://github.com/wixtoolset/issues/issues/5933
- Add support for detecting VS2022.
- Add x64 custom actions.
- Remove ancient Help 2.0 support.
- Update WixCop to add the new element to trigger custom action.
Diffstat (limited to 'src/ext/VisualStudio/wixext')
12 files changed, 5 insertions, 1081 deletions
diff --git a/src/ext/VisualStudio/wixext/Symbols/HelpFileSymbol.cs b/src/ext/VisualStudio/wixext/Symbols/HelpFileSymbol.cs deleted file mode 100644 index 8078f4ab..00000000 --- a/src/ext/VisualStudio/wixext/Symbols/HelpFileSymbol.cs +++ /dev/null | |||
| @@ -1,95 +0,0 @@ | |||
| 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.VisualStudio | ||
| 4 | { | ||
| 5 | using WixToolset.Data; | ||
| 6 | using WixToolset.VisualStudio.Symbols; | ||
| 7 | |||
| 8 | public static partial class VSSymbolDefinitions | ||
| 9 | { | ||
| 10 | public static readonly IntermediateSymbolDefinition HelpFile = new IntermediateSymbolDefinition( | ||
| 11 | VSSymbolDefinitionType.HelpFile.ToString(), | ||
| 12 | new[] | ||
| 13 | { | ||
| 14 | new IntermediateFieldDefinition(nameof(HelpFileSymbolFields.HelpFileName), IntermediateFieldType.String), | ||
| 15 | new IntermediateFieldDefinition(nameof(HelpFileSymbolFields.LangID), IntermediateFieldType.Number), | ||
| 16 | new IntermediateFieldDefinition(nameof(HelpFileSymbolFields.HxSFileRef), IntermediateFieldType.String), | ||
| 17 | new IntermediateFieldDefinition(nameof(HelpFileSymbolFields.HxIFileRef), IntermediateFieldType.String), | ||
| 18 | new IntermediateFieldDefinition(nameof(HelpFileSymbolFields.HxQFileRef), IntermediateFieldType.String), | ||
| 19 | new IntermediateFieldDefinition(nameof(HelpFileSymbolFields.HxRFileRef), IntermediateFieldType.String), | ||
| 20 | new IntermediateFieldDefinition(nameof(HelpFileSymbolFields.SamplesFileRef), IntermediateFieldType.String), | ||
| 21 | }, | ||
| 22 | typeof(HelpFileSymbol)); | ||
| 23 | } | ||
| 24 | } | ||
| 25 | |||
| 26 | namespace WixToolset.VisualStudio.Symbols | ||
| 27 | { | ||
| 28 | using WixToolset.Data; | ||
| 29 | |||
| 30 | public enum HelpFileSymbolFields | ||
| 31 | { | ||
| 32 | HelpFileName, | ||
| 33 | LangID, | ||
| 34 | HxSFileRef, | ||
| 35 | HxIFileRef, | ||
| 36 | HxQFileRef, | ||
| 37 | HxRFileRef, | ||
| 38 | SamplesFileRef, | ||
| 39 | } | ||
| 40 | |||
| 41 | public class HelpFileSymbol : IntermediateSymbol | ||
| 42 | { | ||
| 43 | public HelpFileSymbol() : base(VSSymbolDefinitions.HelpFile, null, null) | ||
| 44 | { | ||
| 45 | } | ||
| 46 | |||
| 47 | public HelpFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(VSSymbolDefinitions.HelpFile, sourceLineNumber, id) | ||
| 48 | { | ||
| 49 | } | ||
| 50 | |||
| 51 | public IntermediateField this[HelpFileSymbolFields index] => this.Fields[(int)index]; | ||
| 52 | |||
| 53 | public string HelpFileName | ||
| 54 | { | ||
| 55 | get => this.Fields[(int)HelpFileSymbolFields.HelpFileName].AsString(); | ||
| 56 | set => this.Set((int)HelpFileSymbolFields.HelpFileName, value); | ||
| 57 | } | ||
| 58 | |||
| 59 | public int? LangID | ||
| 60 | { | ||
| 61 | get => this.Fields[(int)HelpFileSymbolFields.LangID].AsNullableNumber(); | ||
| 62 | set => this.Set((int)HelpFileSymbolFields.LangID, value); | ||
| 63 | } | ||
| 64 | |||
| 65 | public string HxSFileRef | ||
| 66 | { | ||
| 67 | get => this.Fields[(int)HelpFileSymbolFields.HxSFileRef].AsString(); | ||
| 68 | set => this.Set((int)HelpFileSymbolFields.HxSFileRef, value); | ||
| 69 | } | ||
| 70 | |||
| 71 | public string HxIFileRef | ||
| 72 | { | ||
| 73 | get => this.Fields[(int)HelpFileSymbolFields.HxIFileRef].AsString(); | ||
| 74 | set => this.Set((int)HelpFileSymbolFields.HxIFileRef, value); | ||
| 75 | } | ||
| 76 | |||
| 77 | public string HxQFileRef | ||
| 78 | { | ||
| 79 | get => this.Fields[(int)HelpFileSymbolFields.HxQFileRef].AsString(); | ||
| 80 | set => this.Set((int)HelpFileSymbolFields.HxQFileRef, value); | ||
| 81 | } | ||
| 82 | |||
| 83 | public string HxRFileRef | ||
| 84 | { | ||
| 85 | get => this.Fields[(int)HelpFileSymbolFields.HxRFileRef].AsString(); | ||
| 86 | set => this.Set((int)HelpFileSymbolFields.HxRFileRef, value); | ||
| 87 | } | ||
| 88 | |||
| 89 | public string SamplesFileRef | ||
| 90 | { | ||
| 91 | get => this.Fields[(int)HelpFileSymbolFields.SamplesFileRef].AsString(); | ||
| 92 | set => this.Set((int)HelpFileSymbolFields.SamplesFileRef, value); | ||
| 93 | } | ||
| 94 | } | ||
| 95 | } \ No newline at end of file | ||
diff --git a/src/ext/VisualStudio/wixext/Symbols/HelpFileToNamespaceSymbol.cs b/src/ext/VisualStudio/wixext/Symbols/HelpFileToNamespaceSymbol.cs deleted file mode 100644 index f18d6701..00000000 --- a/src/ext/VisualStudio/wixext/Symbols/HelpFileToNamespaceSymbol.cs +++ /dev/null | |||
| @@ -1,55 +0,0 @@ | |||
| 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.VisualStudio | ||
| 4 | { | ||
| 5 | using WixToolset.Data; | ||
| 6 | using WixToolset.VisualStudio.Symbols; | ||
| 7 | |||
| 8 | public static partial class VSSymbolDefinitions | ||
| 9 | { | ||
| 10 | public static readonly IntermediateSymbolDefinition HelpFileToNamespace = new IntermediateSymbolDefinition( | ||
| 11 | VSSymbolDefinitionType.HelpFileToNamespace.ToString(), | ||
| 12 | new[] | ||
| 13 | { | ||
| 14 | new IntermediateFieldDefinition(nameof(HelpFileToNamespaceSymbolFields.HelpFileRef), IntermediateFieldType.String), | ||
| 15 | new IntermediateFieldDefinition(nameof(HelpFileToNamespaceSymbolFields.HelpNamespaceRef), IntermediateFieldType.String), | ||
| 16 | }, | ||
| 17 | typeof(HelpFileToNamespaceSymbol)); | ||
| 18 | } | ||
| 19 | } | ||
| 20 | |||
| 21 | namespace WixToolset.VisualStudio.Symbols | ||
| 22 | { | ||
| 23 | using WixToolset.Data; | ||
| 24 | |||
| 25 | public enum HelpFileToNamespaceSymbolFields | ||
| 26 | { | ||
| 27 | HelpFileRef, | ||
| 28 | HelpNamespaceRef, | ||
| 29 | } | ||
| 30 | |||
| 31 | public class HelpFileToNamespaceSymbol : IntermediateSymbol | ||
| 32 | { | ||
| 33 | public HelpFileToNamespaceSymbol() : base(VSSymbolDefinitions.HelpFileToNamespace, null, null) | ||
| 34 | { | ||
| 35 | } | ||
| 36 | |||
| 37 | public HelpFileToNamespaceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(VSSymbolDefinitions.HelpFileToNamespace, sourceLineNumber, id) | ||
| 38 | { | ||
| 39 | } | ||
| 40 | |||
| 41 | public IntermediateField this[HelpFileToNamespaceSymbolFields index] => this.Fields[(int)index]; | ||
| 42 | |||
| 43 | public string HelpFileRef | ||
| 44 | { | ||
| 45 | get => this.Fields[(int)HelpFileToNamespaceSymbolFields.HelpFileRef].AsString(); | ||
| 46 | set => this.Set((int)HelpFileToNamespaceSymbolFields.HelpFileRef, value); | ||
| 47 | } | ||
| 48 | |||
| 49 | public string HelpNamespaceRef | ||
| 50 | { | ||
| 51 | get => this.Fields[(int)HelpFileToNamespaceSymbolFields.HelpNamespaceRef].AsString(); | ||
| 52 | set => this.Set((int)HelpFileToNamespaceSymbolFields.HelpNamespaceRef, value); | ||
| 53 | } | ||
| 54 | } | ||
| 55 | } \ No newline at end of file | ||
diff --git a/src/ext/VisualStudio/wixext/Symbols/HelpFilterSymbol.cs b/src/ext/VisualStudio/wixext/Symbols/HelpFilterSymbol.cs deleted file mode 100644 index 9deb47d0..00000000 --- a/src/ext/VisualStudio/wixext/Symbols/HelpFilterSymbol.cs +++ /dev/null | |||
| @@ -1,55 +0,0 @@ | |||
| 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.VisualStudio | ||
| 4 | { | ||
| 5 | using WixToolset.Data; | ||
| 6 | using WixToolset.VisualStudio.Symbols; | ||
| 7 | |||
| 8 | public static partial class VSSymbolDefinitions | ||
| 9 | { | ||
| 10 | public static readonly IntermediateSymbolDefinition HelpFilter = new IntermediateSymbolDefinition( | ||
| 11 | VSSymbolDefinitionType.HelpFilter.ToString(), | ||
| 12 | new[] | ||
| 13 | { | ||
| 14 | new IntermediateFieldDefinition(nameof(HelpFilterSymbolFields.Description), IntermediateFieldType.String), | ||
| 15 | new IntermediateFieldDefinition(nameof(HelpFilterSymbolFields.QueryString), IntermediateFieldType.String), | ||
| 16 | }, | ||
| 17 | typeof(HelpFilterSymbol)); | ||
| 18 | } | ||
| 19 | } | ||
| 20 | |||
| 21 | namespace WixToolset.VisualStudio.Symbols | ||
| 22 | { | ||
| 23 | using WixToolset.Data; | ||
| 24 | |||
| 25 | public enum HelpFilterSymbolFields | ||
| 26 | { | ||
| 27 | Description, | ||
| 28 | QueryString, | ||
| 29 | } | ||
| 30 | |||
| 31 | public class HelpFilterSymbol : IntermediateSymbol | ||
| 32 | { | ||
| 33 | public HelpFilterSymbol() : base(VSSymbolDefinitions.HelpFilter, null, null) | ||
| 34 | { | ||
| 35 | } | ||
| 36 | |||
| 37 | public HelpFilterSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(VSSymbolDefinitions.HelpFilter, sourceLineNumber, id) | ||
| 38 | { | ||
| 39 | } | ||
| 40 | |||
| 41 | public IntermediateField this[HelpFilterSymbolFields index] => this.Fields[(int)index]; | ||
| 42 | |||
| 43 | public string Description | ||
| 44 | { | ||
| 45 | get => this.Fields[(int)HelpFilterSymbolFields.Description].AsString(); | ||
| 46 | set => this.Set((int)HelpFilterSymbolFields.Description, value); | ||
| 47 | } | ||
| 48 | |||
| 49 | public string QueryString | ||
| 50 | { | ||
| 51 | get => this.Fields[(int)HelpFilterSymbolFields.QueryString].AsString(); | ||
| 52 | set => this.Set((int)HelpFilterSymbolFields.QueryString, value); | ||
| 53 | } | ||
| 54 | } | ||
| 55 | } \ No newline at end of file | ||
diff --git a/src/ext/VisualStudio/wixext/Symbols/HelpFilterToNamespaceSymbol.cs b/src/ext/VisualStudio/wixext/Symbols/HelpFilterToNamespaceSymbol.cs deleted file mode 100644 index f3d21289..00000000 --- a/src/ext/VisualStudio/wixext/Symbols/HelpFilterToNamespaceSymbol.cs +++ /dev/null | |||
| @@ -1,55 +0,0 @@ | |||
| 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.VisualStudio | ||
| 4 | { | ||
| 5 | using WixToolset.Data; | ||
| 6 | using WixToolset.VisualStudio.Symbols; | ||
| 7 | |||
| 8 | public static partial class VSSymbolDefinitions | ||
| 9 | { | ||
| 10 | public static readonly IntermediateSymbolDefinition HelpFilterToNamespace = new IntermediateSymbolDefinition( | ||
| 11 | VSSymbolDefinitionType.HelpFilterToNamespace.ToString(), | ||
| 12 | new[] | ||
| 13 | { | ||
| 14 | new IntermediateFieldDefinition(nameof(HelpFilterToNamespaceSymbolFields.HelpFilterRef), IntermediateFieldType.String), | ||
| 15 | new IntermediateFieldDefinition(nameof(HelpFilterToNamespaceSymbolFields.HelpNamespaceRef), IntermediateFieldType.String), | ||
| 16 | }, | ||
| 17 | typeof(HelpFilterToNamespaceSymbol)); | ||
| 18 | } | ||
| 19 | } | ||
| 20 | |||
| 21 | namespace WixToolset.VisualStudio.Symbols | ||
| 22 | { | ||
| 23 | using WixToolset.Data; | ||
| 24 | |||
| 25 | public enum HelpFilterToNamespaceSymbolFields | ||
| 26 | { | ||
| 27 | HelpFilterRef, | ||
| 28 | HelpNamespaceRef, | ||
| 29 | } | ||
| 30 | |||
| 31 | public class HelpFilterToNamespaceSymbol : IntermediateSymbol | ||
| 32 | { | ||
| 33 | public HelpFilterToNamespaceSymbol() : base(VSSymbolDefinitions.HelpFilterToNamespace, null, null) | ||
| 34 | { | ||
| 35 | } | ||
| 36 | |||
| 37 | public HelpFilterToNamespaceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(VSSymbolDefinitions.HelpFilterToNamespace, sourceLineNumber, id) | ||
| 38 | { | ||
| 39 | } | ||
| 40 | |||
| 41 | public IntermediateField this[HelpFilterToNamespaceSymbolFields index] => this.Fields[(int)index]; | ||
| 42 | |||
| 43 | public string HelpFilterRef | ||
| 44 | { | ||
| 45 | get => this.Fields[(int)HelpFilterToNamespaceSymbolFields.HelpFilterRef].AsString(); | ||
| 46 | set => this.Set((int)HelpFilterToNamespaceSymbolFields.HelpFilterRef, value); | ||
| 47 | } | ||
| 48 | |||
| 49 | public string HelpNamespaceRef | ||
| 50 | { | ||
| 51 | get => this.Fields[(int)HelpFilterToNamespaceSymbolFields.HelpNamespaceRef].AsString(); | ||
| 52 | set => this.Set((int)HelpFilterToNamespaceSymbolFields.HelpNamespaceRef, value); | ||
| 53 | } | ||
| 54 | } | ||
| 55 | } \ No newline at end of file | ||
diff --git a/src/ext/VisualStudio/wixext/Symbols/HelpNamespaceSymbol.cs b/src/ext/VisualStudio/wixext/Symbols/HelpNamespaceSymbol.cs deleted file mode 100644 index 8d2c2f80..00000000 --- a/src/ext/VisualStudio/wixext/Symbols/HelpNamespaceSymbol.cs +++ /dev/null | |||
| @@ -1,63 +0,0 @@ | |||
| 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.VisualStudio | ||
| 4 | { | ||
| 5 | using WixToolset.Data; | ||
| 6 | using WixToolset.VisualStudio.Symbols; | ||
| 7 | |||
| 8 | public static partial class VSSymbolDefinitions | ||
| 9 | { | ||
| 10 | public static readonly IntermediateSymbolDefinition HelpNamespace = new IntermediateSymbolDefinition( | ||
| 11 | VSSymbolDefinitionType.HelpNamespace.ToString(), | ||
| 12 | new[] | ||
| 13 | { | ||
| 14 | new IntermediateFieldDefinition(nameof(HelpNamespaceSymbolFields.NamespaceName), IntermediateFieldType.String), | ||
| 15 | new IntermediateFieldDefinition(nameof(HelpNamespaceSymbolFields.CollectionFileRef), IntermediateFieldType.String), | ||
| 16 | new IntermediateFieldDefinition(nameof(HelpNamespaceSymbolFields.Description), IntermediateFieldType.String), | ||
| 17 | }, | ||
| 18 | typeof(HelpNamespaceSymbol)); | ||
| 19 | } | ||
| 20 | } | ||
| 21 | |||
| 22 | namespace WixToolset.VisualStudio.Symbols | ||
| 23 | { | ||
| 24 | using WixToolset.Data; | ||
| 25 | |||
| 26 | public enum HelpNamespaceSymbolFields | ||
| 27 | { | ||
| 28 | NamespaceName, | ||
| 29 | CollectionFileRef, | ||
| 30 | Description, | ||
| 31 | } | ||
| 32 | |||
| 33 | public class HelpNamespaceSymbol : IntermediateSymbol | ||
| 34 | { | ||
| 35 | public HelpNamespaceSymbol() : base(VSSymbolDefinitions.HelpNamespace, null, null) | ||
| 36 | { | ||
| 37 | } | ||
| 38 | |||
| 39 | public HelpNamespaceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(VSSymbolDefinitions.HelpNamespace, sourceLineNumber, id) | ||
| 40 | { | ||
| 41 | } | ||
| 42 | |||
| 43 | public IntermediateField this[HelpNamespaceSymbolFields index] => this.Fields[(int)index]; | ||
| 44 | |||
| 45 | public string NamespaceName | ||
| 46 | { | ||
| 47 | get => this.Fields[(int)HelpNamespaceSymbolFields.NamespaceName].AsString(); | ||
| 48 | set => this.Set((int)HelpNamespaceSymbolFields.NamespaceName, value); | ||
| 49 | } | ||
| 50 | |||
| 51 | public string CollectionFileRef | ||
| 52 | { | ||
| 53 | get => this.Fields[(int)HelpNamespaceSymbolFields.CollectionFileRef].AsString(); | ||
| 54 | set => this.Set((int)HelpNamespaceSymbolFields.CollectionFileRef, value); | ||
| 55 | } | ||
| 56 | |||
| 57 | public string Description | ||
| 58 | { | ||
| 59 | get => this.Fields[(int)HelpNamespaceSymbolFields.Description].AsString(); | ||
| 60 | set => this.Set((int)HelpNamespaceSymbolFields.Description, value); | ||
| 61 | } | ||
| 62 | } | ||
| 63 | } \ No newline at end of file | ||
diff --git a/src/ext/VisualStudio/wixext/Symbols/HelpPluginSymbol.cs b/src/ext/VisualStudio/wixext/Symbols/HelpPluginSymbol.cs deleted file mode 100644 index a452fbd5..00000000 --- a/src/ext/VisualStudio/wixext/Symbols/HelpPluginSymbol.cs +++ /dev/null | |||
| @@ -1,79 +0,0 @@ | |||
| 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.VisualStudio | ||
| 4 | { | ||
| 5 | using WixToolset.Data; | ||
| 6 | using WixToolset.VisualStudio.Symbols; | ||
| 7 | |||
| 8 | public static partial class VSSymbolDefinitions | ||
| 9 | { | ||
| 10 | public static readonly IntermediateSymbolDefinition HelpPlugin = new IntermediateSymbolDefinition( | ||
| 11 | VSSymbolDefinitionType.HelpPlugin.ToString(), | ||
| 12 | new[] | ||
| 13 | { | ||
| 14 | new IntermediateFieldDefinition(nameof(HelpPluginSymbolFields.HelpNamespaceRef), IntermediateFieldType.String), | ||
| 15 | new IntermediateFieldDefinition(nameof(HelpPluginSymbolFields.ParentHelpNamespaceRef), IntermediateFieldType.String), | ||
| 16 | new IntermediateFieldDefinition(nameof(HelpPluginSymbolFields.HxTFileRef), IntermediateFieldType.String), | ||
| 17 | new IntermediateFieldDefinition(nameof(HelpPluginSymbolFields.HxAFileRef), IntermediateFieldType.String), | ||
| 18 | new IntermediateFieldDefinition(nameof(HelpPluginSymbolFields.ParentHxTFileRef), IntermediateFieldType.String), | ||
| 19 | }, | ||
| 20 | typeof(HelpPluginSymbol)); | ||
| 21 | } | ||
| 22 | } | ||
| 23 | |||
| 24 | namespace WixToolset.VisualStudio.Symbols | ||
| 25 | { | ||
| 26 | using WixToolset.Data; | ||
| 27 | |||
| 28 | public enum HelpPluginSymbolFields | ||
| 29 | { | ||
| 30 | HelpNamespaceRef, | ||
| 31 | ParentHelpNamespaceRef, | ||
| 32 | HxTFileRef, | ||
| 33 | HxAFileRef, | ||
| 34 | ParentHxTFileRef, | ||
| 35 | } | ||
| 36 | |||
| 37 | public class HelpPluginSymbol : IntermediateSymbol | ||
| 38 | { | ||
| 39 | public HelpPluginSymbol() : base(VSSymbolDefinitions.HelpPlugin, null, null) | ||
| 40 | { | ||
| 41 | } | ||
| 42 | |||
| 43 | public HelpPluginSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(VSSymbolDefinitions.HelpPlugin, sourceLineNumber, id) | ||
| 44 | { | ||
| 45 | } | ||
| 46 | |||
| 47 | public IntermediateField this[HelpPluginSymbolFields index] => this.Fields[(int)index]; | ||
| 48 | |||
| 49 | public string HelpNamespaceRef | ||
| 50 | { | ||
| 51 | get => this.Fields[(int)HelpPluginSymbolFields.HelpNamespaceRef].AsString(); | ||
| 52 | set => this.Set((int)HelpPluginSymbolFields.HelpNamespaceRef, value); | ||
| 53 | } | ||
| 54 | |||
| 55 | public string ParentHelpNamespaceRef | ||
| 56 | { | ||
| 57 | get => this.Fields[(int)HelpPluginSymbolFields.ParentHelpNamespaceRef].AsString(); | ||
| 58 | set => this.Set((int)HelpPluginSymbolFields.ParentHelpNamespaceRef, value); | ||
| 59 | } | ||
| 60 | |||
| 61 | public string HxTFileRef | ||
| 62 | { | ||
| 63 | get => this.Fields[(int)HelpPluginSymbolFields.HxTFileRef].AsString(); | ||
| 64 | set => this.Set((int)HelpPluginSymbolFields.HxTFileRef, value); | ||
| 65 | } | ||
| 66 | |||
| 67 | public string HxAFileRef | ||
| 68 | { | ||
| 69 | get => this.Fields[(int)HelpPluginSymbolFields.HxAFileRef].AsString(); | ||
| 70 | set => this.Set((int)HelpPluginSymbolFields.HxAFileRef, value); | ||
| 71 | } | ||
| 72 | |||
| 73 | public string ParentHxTFileRef | ||
| 74 | { | ||
| 75 | get => this.Fields[(int)HelpPluginSymbolFields.ParentHxTFileRef].AsString(); | ||
| 76 | set => this.Set((int)HelpPluginSymbolFields.ParentHxTFileRef, value); | ||
| 77 | } | ||
| 78 | } | ||
| 79 | } \ No newline at end of file | ||
diff --git a/src/ext/VisualStudio/wixext/Symbols/VSSymbolDefinitions.cs b/src/ext/VisualStudio/wixext/Symbols/VSSymbolDefinitions.cs deleted file mode 100644 index cea6a2b6..00000000 --- a/src/ext/VisualStudio/wixext/Symbols/VSSymbolDefinitions.cs +++ /dev/null | |||
| @@ -1,59 +0,0 @@ | |||
| 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.VisualStudio | ||
| 4 | { | ||
| 5 | using System; | ||
| 6 | using WixToolset.Data; | ||
| 7 | |||
| 8 | public enum VSSymbolDefinitionType | ||
| 9 | { | ||
| 10 | HelpFile, | ||
| 11 | HelpFileToNamespace, | ||
| 12 | HelpFilter, | ||
| 13 | HelpFilterToNamespace, | ||
| 14 | HelpNamespace, | ||
| 15 | HelpPlugin, | ||
| 16 | } | ||
| 17 | |||
| 18 | public static partial class VSSymbolDefinitions | ||
| 19 | { | ||
| 20 | public static readonly Version Version = new Version("4.0.0"); | ||
| 21 | |||
| 22 | public static IntermediateSymbolDefinition ByName(string name) | ||
| 23 | { | ||
| 24 | if (!Enum.TryParse(name, out VSSymbolDefinitionType type)) | ||
| 25 | { | ||
| 26 | return null; | ||
| 27 | } | ||
| 28 | |||
| 29 | return ByType(type); | ||
| 30 | } | ||
| 31 | |||
| 32 | public static IntermediateSymbolDefinition ByType(VSSymbolDefinitionType type) | ||
| 33 | { | ||
| 34 | switch (type) | ||
| 35 | { | ||
| 36 | case VSSymbolDefinitionType.HelpFile: | ||
| 37 | return VSSymbolDefinitions.HelpFile; | ||
| 38 | |||
| 39 | case VSSymbolDefinitionType.HelpFileToNamespace: | ||
| 40 | return VSSymbolDefinitions.HelpFileToNamespace; | ||
| 41 | |||
| 42 | case VSSymbolDefinitionType.HelpFilter: | ||
| 43 | return VSSymbolDefinitions.HelpFilter; | ||
| 44 | |||
| 45 | case VSSymbolDefinitionType.HelpFilterToNamespace: | ||
| 46 | return VSSymbolDefinitions.HelpFilterToNamespace; | ||
| 47 | |||
| 48 | case VSSymbolDefinitionType.HelpNamespace: | ||
| 49 | return VSSymbolDefinitions.HelpNamespace; | ||
| 50 | |||
| 51 | case VSSymbolDefinitionType.HelpPlugin: | ||
| 52 | return VSSymbolDefinitions.HelpPlugin; | ||
| 53 | |||
| 54 | default: | ||
| 55 | throw new ArgumentOutOfRangeException(nameof(type)); | ||
| 56 | } | ||
| 57 | } | ||
| 58 | } | ||
| 59 | } | ||
diff --git a/src/ext/VisualStudio/wixext/VSCompiler.cs b/src/ext/VisualStudio/wixext/VSCompiler.cs index 65f0f97d..1901a700 100644 --- a/src/ext/VisualStudio/wixext/VSCompiler.cs +++ b/src/ext/VisualStudio/wixext/VSCompiler.cs | |||
| @@ -4,13 +4,12 @@ namespace WixToolset.VisualStudio | |||
| 4 | { | 4 | { |
| 5 | using System; | 5 | using System; |
| 6 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
| 7 | using System.Globalization; | ||
| 8 | using System.Xml.Linq; | 7 | using System.Xml.Linq; |
| 9 | using WixToolset.Data; | 8 | using WixToolset.Data; |
| 10 | using WixToolset.Data.Symbols; | 9 | using WixToolset.Data.Symbols; |
| 11 | using WixToolset.Data.WindowsInstaller; | 10 | using WixToolset.Data.WindowsInstaller; |
| 12 | using WixToolset.Extensibility; | 11 | using WixToolset.Extensibility; |
| 13 | using WixToolset.VisualStudio.Symbols; | 12 | using WixToolset.Extensibility.Data; |
| 14 | 13 | ||
| 15 | /// <summary> | 14 | /// <summary> |
| 16 | /// The compiler for the WiX Toolset Visual Studio Extension. | 15 | /// The compiler for the WiX Toolset Visual Studio Extension. |
| @@ -44,12 +43,6 @@ namespace WixToolset.VisualStudio | |||
| 44 | case "File": | 43 | case "File": |
| 45 | switch (element.Name.LocalName) | 44 | switch (element.Name.LocalName) |
| 46 | { | 45 | { |
| 47 | case "HelpCollection": | ||
| 48 | this.ParseHelpCollectionElement(intermediate, section, element, context["FileId"]); | ||
| 49 | break; | ||
| 50 | case "HelpFile": | ||
| 51 | this.ParseHelpFileElement(intermediate, section, element, context["FileId"]); | ||
| 52 | break; | ||
| 53 | case "VsixPackage": | 46 | case "VsixPackage": |
| 54 | this.ParseVsixPackageElement(intermediate, section, element, context["ComponentId"], context["FileId"]); | 47 | this.ParseVsixPackageElement(intermediate, section, element, context["ComponentId"], context["FileId"]); |
| 55 | break; | 48 | break; |
| @@ -63,11 +56,8 @@ namespace WixToolset.VisualStudio | |||
| 63 | case "Package": | 56 | case "Package": |
| 64 | switch (element.Name.LocalName) | 57 | switch (element.Name.LocalName) |
| 65 | { | 58 | { |
| 66 | case "HelpCollectionRef": | 59 | case "FindVisualStudio": |
| 67 | this.ParseHelpCollectionRefElement(intermediate, section, element); | 60 | this.ParseFindVisualStudioElement(intermediate, section, element); |
| 68 | break; | ||
| 69 | case "HelpFilter": | ||
| 70 | this.ParseHelpFilterElement(intermediate, section, element); | ||
| 71 | break; | 61 | break; |
| 72 | default: | 62 | default: |
| 73 | this.ParseHelper.UnexpectedElement(parentElement, element); | 63 | this.ParseHelper.UnexpectedElement(parentElement, element); |
| @@ -80,496 +70,13 @@ namespace WixToolset.VisualStudio | |||
| 80 | } | 70 | } |
| 81 | } | 71 | } |
| 82 | 72 | ||
| 83 | private void ParseHelpCollectionRefElement(Intermediate intermediate, IntermediateSection section, XElement element) | 73 | private void ParseFindVisualStudioElement(Intermediate intermediate, IntermediateSection section, XElement element) |
| 84 | { | ||
| 85 | var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); | ||
| 86 | Identifier id = null; | ||
| 87 | |||
| 88 | foreach (var attrib in element.Attributes()) | ||
| 89 | { | ||
| 90 | if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace) | ||
| 91 | { | ||
| 92 | switch (attrib.Name.LocalName) | ||
| 93 | { | ||
| 94 | case "Id": | ||
| 95 | id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib); | ||
| 96 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, VSSymbolDefinitions.HelpNamespace, id.Id); | ||
| 97 | break; | ||
| 98 | default: | ||
| 99 | this.ParseHelper.UnexpectedAttribute(element, attrib); | ||
| 100 | break; | ||
| 101 | } | ||
| 102 | } | ||
| 103 | else | ||
| 104 | { | ||
| 105 | this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, element, attrib); | ||
| 106 | } | ||
| 107 | } | ||
| 108 | |||
| 109 | if (null == id) | ||
| 110 | { | ||
| 111 | this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Id")); | ||
| 112 | } | ||
| 113 | |||
| 114 | foreach (var child in element.Elements()) | ||
| 115 | { | ||
| 116 | if (this.Namespace == child.Name.Namespace) | ||
| 117 | { | ||
| 118 | switch (child.Name.LocalName) | ||
| 119 | { | ||
| 120 | case "HelpFileRef": | ||
| 121 | this.ParseHelpFileRefElement(intermediate, section, child, id); | ||
| 122 | break; | ||
| 123 | default: | ||
| 124 | this.ParseHelper.UnexpectedElement(element, child); | ||
| 125 | break; | ||
| 126 | } | ||
| 127 | } | ||
| 128 | else | ||
| 129 | { | ||
| 130 | this.ParseHelper.ParseExtensionElement(this.Context.Extensions, intermediate, section, element, child); | ||
| 131 | } | ||
| 132 | } | ||
| 133 | } | ||
| 134 | |||
| 135 | private void ParseHelpCollectionElement(Intermediate intermediate, IntermediateSection section, XElement element, string fileId) | ||
| 136 | { | ||
| 137 | var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); | ||
| 138 | Identifier id = null; | ||
| 139 | string description = null; | ||
| 140 | string name = null; | ||
| 141 | var suppressCAs = YesNoType.No; | ||
| 142 | |||
| 143 | foreach (var attrib in element.Attributes()) | ||
| 144 | { | ||
| 145 | if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace) | ||
| 146 | { | ||
| 147 | switch (attrib.Name.LocalName) | ||
| 148 | { | ||
| 149 | case "Id": | ||
| 150 | id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib); | ||
| 151 | break; | ||
| 152 | case "Description": | ||
| 153 | description = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); | ||
| 154 | break; | ||
| 155 | case "Name": | ||
| 156 | name = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); | ||
| 157 | break; | ||
| 158 | case "SuppressCustomActions": | ||
| 159 | suppressCAs = this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib); | ||
| 160 | break; | ||
| 161 | default: | ||
| 162 | this.ParseHelper.UnexpectedAttribute(element, attrib); | ||
| 163 | break; | ||
| 164 | } | ||
| 165 | } | ||
| 166 | else | ||
| 167 | { | ||
| 168 | this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, element, attrib); | ||
| 169 | } | ||
| 170 | } | ||
| 171 | |||
| 172 | if (null == id) | ||
| 173 | { | ||
| 174 | id = this.ParseHelper.CreateIdentifier("vshc", fileId, description, name); | ||
| 175 | } | ||
| 176 | |||
| 177 | if (null == description) | ||
| 178 | { | ||
| 179 | this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Description")); | ||
| 180 | } | ||
| 181 | |||
| 182 | if (null == name) | ||
| 183 | { | ||
| 184 | this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Name")); | ||
| 185 | } | ||
| 186 | |||
| 187 | foreach (var child in element.Elements()) | ||
| 188 | { | ||
| 189 | if (this.Namespace == child.Name.Namespace) | ||
| 190 | { | ||
| 191 | switch (child.Name.LocalName) | ||
| 192 | { | ||
| 193 | case "HelpFileRef": | ||
| 194 | this.ParseHelpFileRefElement(intermediate, section, child, id); | ||
| 195 | break; | ||
| 196 | case "HelpFilterRef": | ||
| 197 | this.ParseHelpFilterRefElement(intermediate, section, child, id); | ||
| 198 | break; | ||
| 199 | case "PlugCollectionInto": | ||
| 200 | this.ParsePlugCollectionIntoElement(intermediate, section, child, id); | ||
| 201 | break; | ||
| 202 | default: | ||
| 203 | this.ParseHelper.UnexpectedElement(element, child); | ||
| 204 | break; | ||
| 205 | } | ||
| 206 | } | ||
| 207 | else | ||
| 208 | { | ||
| 209 | this.ParseHelper.ParseExtensionElement(this.Context.Extensions, intermediate, section, element, child); | ||
| 210 | } | ||
| 211 | } | ||
| 212 | |||
| 213 | if (!this.Messaging.EncounteredError) | ||
| 214 | { | ||
| 215 | section.AddSymbol(new HelpNamespaceSymbol(sourceLineNumbers, id) | ||
| 216 | { | ||
| 217 | NamespaceName = name, | ||
| 218 | CollectionFileRef = fileId, | ||
| 219 | Description = description, | ||
| 220 | }); | ||
| 221 | |||
| 222 | if (YesNoType.No == suppressCAs) | ||
| 223 | { | ||
| 224 | this.AddReferenceToRegisterMicrosoftHelp(section, sourceLineNumbers); | ||
| 225 | } | ||
| 226 | } | ||
| 227 | } | ||
| 228 | |||
| 229 | private void ParseHelpFileElement(Intermediate intermediate, IntermediateSection section, XElement element, string fileId) | ||
| 230 | { | ||
| 231 | var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); | ||
| 232 | Identifier id = null; | ||
| 233 | string name = null; | ||
| 234 | var language = CompilerConstants.IntegerNotSet; | ||
| 235 | string hxi = null; | ||
| 236 | string hxq = null; | ||
| 237 | string hxr = null; | ||
| 238 | string samples = null; | ||
| 239 | var suppressCAs = YesNoType.No; | ||
| 240 | |||
| 241 | foreach (var attrib in element.Attributes()) | ||
| 242 | { | ||
| 243 | if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace) | ||
| 244 | { | ||
| 245 | switch (attrib.Name.LocalName) | ||
| 246 | { | ||
| 247 | case "Id": | ||
| 248 | id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib); | ||
| 249 | break; | ||
| 250 | case "AttributeIndex": | ||
| 251 | hxr = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | ||
| 252 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.File, hxr); | ||
| 253 | break; | ||
| 254 | case "Index": | ||
| 255 | hxi = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | ||
| 256 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.File, hxi); | ||
| 257 | break; | ||
| 258 | case "Language": | ||
| 259 | language = this.ParseHelper.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, short.MaxValue); | ||
| 260 | break; | ||
| 261 | case "Name": | ||
| 262 | name = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); | ||
| 263 | break; | ||
| 264 | case "SampleLocation": | ||
| 265 | samples = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | ||
| 266 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.File, samples); | ||
| 267 | break; | ||
| 268 | case "Search": | ||
| 269 | hxq = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | ||
| 270 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.File, hxq); | ||
| 271 | break; | ||
| 272 | case "SuppressCustomActions": | ||
| 273 | suppressCAs = this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib); | ||
| 274 | break; | ||
| 275 | default: | ||
| 276 | this.ParseHelper.UnexpectedAttribute(element, attrib); | ||
| 277 | break; | ||
| 278 | } | ||
| 279 | } | ||
| 280 | else | ||
| 281 | { | ||
| 282 | this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, element, attrib); | ||
| 283 | } | ||
| 284 | } | ||
| 285 | |||
| 286 | if (null == id) | ||
| 287 | { | ||
| 288 | id = this.ParseHelper.CreateIdentifier("vshf", fileId, name, language.ToString(CultureInfo.InvariantCulture.NumberFormat)); | ||
| 289 | } | ||
| 290 | |||
| 291 | if (null == name) | ||
| 292 | { | ||
| 293 | this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Name")); | ||
| 294 | } | ||
| 295 | |||
| 296 | // Uninstall will always fail silently, leaving file registered, if Language is not set | ||
| 297 | if (CompilerConstants.IntegerNotSet == language) | ||
| 298 | { | ||
| 299 | this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Language")); | ||
| 300 | } | ||
| 301 | |||
| 302 | this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element); | ||
| 303 | |||
| 304 | if (!this.Messaging.EncounteredError) | ||
| 305 | { | ||
| 306 | section.AddSymbol(new HelpFileSymbol(sourceLineNumbers, id) | ||
| 307 | { | ||
| 308 | HelpFileName = name, | ||
| 309 | LangID = language, | ||
| 310 | HxSFileRef = fileId, | ||
| 311 | HxIFileRef = hxi, | ||
| 312 | HxQFileRef = hxq, | ||
| 313 | HxRFileRef = hxr, | ||
| 314 | SamplesFileRef = samples, | ||
| 315 | }); | ||
| 316 | |||
| 317 | if (YesNoType.No == suppressCAs) | ||
| 318 | { | ||
| 319 | this.AddReferenceToRegisterMicrosoftHelp(section, sourceLineNumbers); | ||
| 320 | } | ||
| 321 | } | ||
| 322 | } | ||
| 323 | |||
| 324 | private void ParseHelpFileRefElement(Intermediate intermediate, IntermediateSection section, XElement element, Identifier collectionId) | ||
| 325 | { | ||
| 326 | var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); | ||
| 327 | Identifier id = null; | ||
| 328 | |||
| 329 | foreach (var attrib in element.Attributes()) | ||
| 330 | { | ||
| 331 | if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace) | ||
| 332 | { | ||
| 333 | switch (attrib.Name.LocalName) | ||
| 334 | { | ||
| 335 | case "Id": | ||
| 336 | id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib); | ||
| 337 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, VSSymbolDefinitions.HelpFile, id.Id); | ||
| 338 | break; | ||
| 339 | default: | ||
| 340 | this.ParseHelper.UnexpectedAttribute(element, attrib); | ||
| 341 | break; | ||
| 342 | } | ||
| 343 | } | ||
| 344 | else | ||
| 345 | { | ||
| 346 | this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, element, attrib); | ||
| 347 | } | ||
| 348 | } | ||
| 349 | |||
| 350 | if (null == id) | ||
| 351 | { | ||
| 352 | this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Id")); | ||
| 353 | } | ||
| 354 | |||
| 355 | this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element); | ||
| 356 | |||
| 357 | if (!this.Messaging.EncounteredError) | ||
| 358 | { | ||
| 359 | section.AddSymbol(new HelpFileToNamespaceSymbol(sourceLineNumbers, id) | ||
| 360 | { | ||
| 361 | HelpFileRef = id.Id, | ||
| 362 | HelpNamespaceRef = collectionId.Id, | ||
| 363 | }); | ||
| 364 | } | ||
| 365 | } | ||
| 366 | |||
| 367 | private void ParseHelpFilterElement(Intermediate intermediate, IntermediateSection section, XElement element) | ||
| 368 | { | ||
| 369 | var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); | ||
| 370 | Identifier id = null; | ||
| 371 | string filterDefinition = null; | ||
| 372 | string name = null; | ||
| 373 | var suppressCAs = YesNoType.No; | ||
| 374 | |||
| 375 | foreach (var attrib in element.Attributes()) | ||
| 376 | { | ||
| 377 | if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace) | ||
| 378 | { | ||
| 379 | switch (attrib.Name.LocalName) | ||
| 380 | { | ||
| 381 | case "Id": | ||
| 382 | id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib); | ||
| 383 | break; | ||
| 384 | case "FilterDefinition": | ||
| 385 | filterDefinition = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); | ||
| 386 | break; | ||
| 387 | case "Name": | ||
| 388 | name = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); | ||
| 389 | break; | ||
| 390 | case "SuppressCustomActions": | ||
| 391 | suppressCAs = this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib); | ||
| 392 | break; | ||
| 393 | default: | ||
| 394 | this.ParseHelper.UnexpectedAttribute(element, attrib); | ||
| 395 | break; | ||
| 396 | } | ||
| 397 | } | ||
| 398 | else | ||
| 399 | { | ||
| 400 | this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, element, attrib); | ||
| 401 | } | ||
| 402 | } | ||
| 403 | |||
| 404 | if (null == id) | ||
| 405 | { | ||
| 406 | id = this.ParseHelper.CreateIdentifier("hfl", name, filterDefinition); | ||
| 407 | } | ||
| 408 | |||
| 409 | if (null == name) | ||
| 410 | { | ||
| 411 | this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Name")); | ||
| 412 | } | ||
| 413 | |||
| 414 | this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element); | ||
| 415 | |||
| 416 | if (!this.Messaging.EncounteredError) | ||
| 417 | { | ||
| 418 | section.AddSymbol(new HelpFilterSymbol(sourceLineNumbers, id) | ||
| 419 | { | ||
| 420 | Description = name, | ||
| 421 | QueryString = filterDefinition, | ||
| 422 | }); | ||
| 423 | |||
| 424 | if (YesNoType.No == suppressCAs) | ||
| 425 | { | ||
| 426 | this.AddReferenceToRegisterMicrosoftHelp(section, sourceLineNumbers); | ||
| 427 | } | ||
| 428 | } | ||
| 429 | } | ||
| 430 | |||
| 431 | private void ParseHelpFilterRefElement(Intermediate intermediate, IntermediateSection section, XElement element, Identifier collectionId) | ||
| 432 | { | ||
| 433 | var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); | ||
| 434 | Identifier id = null; | ||
| 435 | |||
| 436 | foreach (var attrib in element.Attributes()) | ||
| 437 | { | ||
| 438 | if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace) | ||
| 439 | { | ||
| 440 | switch (attrib.Name.LocalName) | ||
| 441 | { | ||
| 442 | case "Id": | ||
| 443 | id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib); | ||
| 444 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, VSSymbolDefinitions.HelpFilter, id.Id); | ||
| 445 | break; | ||
| 446 | default: | ||
| 447 | this.ParseHelper.UnexpectedAttribute(element, attrib); | ||
| 448 | break; | ||
| 449 | } | ||
| 450 | } | ||
| 451 | else | ||
| 452 | { | ||
| 453 | this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, element, attrib); | ||
| 454 | } | ||
| 455 | } | ||
| 456 | |||
| 457 | if (null == id) | ||
| 458 | { | ||
| 459 | this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Id")); | ||
| 460 | } | ||
| 461 | |||
| 462 | this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element); | ||
| 463 | |||
| 464 | if (!this.Messaging.EncounteredError) | ||
| 465 | { | ||
| 466 | section.AddSymbol(new HelpFilterToNamespaceSymbol(sourceLineNumbers, id) | ||
| 467 | { | ||
| 468 | HelpFilterRef = id.Id, | ||
| 469 | HelpNamespaceRef = collectionId.Id, | ||
| 470 | }); | ||
| 471 | } | ||
| 472 | } | ||
| 473 | |||
| 474 | private void ParsePlugCollectionIntoElement(Intermediate intermediate, IntermediateSection section, XElement element, Identifier parentId) | ||
| 475 | { | 74 | { |
| 476 | var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); | 75 | var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element); |
| 477 | string hxa = null; | ||
| 478 | string hxt = null; | ||
| 479 | string hxtParent = null; | ||
| 480 | string namespaceParent = null; | ||
| 481 | string feature = null; | ||
| 482 | var suppressExternalNamespaces = YesNoType.No; | ||
| 483 | |||
| 484 | foreach (var attrib in element.Attributes()) | ||
| 485 | { | ||
| 486 | if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace) | ||
| 487 | { | ||
| 488 | switch (attrib.Name.LocalName) | ||
| 489 | { | ||
| 490 | case "Attributes": | ||
| 491 | hxa = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | ||
| 492 | break; | ||
| 493 | case "TableOfContents": | ||
| 494 | hxt = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | ||
| 495 | break; | ||
| 496 | case "TargetCollection": | ||
| 497 | namespaceParent = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | ||
| 498 | break; | ||
| 499 | case "TargetTableOfContents": | ||
| 500 | hxtParent = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | ||
| 501 | break; | ||
| 502 | case "TargetFeature": | ||
| 503 | feature = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | ||
| 504 | break; | ||
| 505 | case "SuppressExternalNamespaces": | ||
| 506 | suppressExternalNamespaces = this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib); | ||
| 507 | break; | ||
| 508 | default: | ||
| 509 | this.ParseHelper.UnexpectedAttribute(element, attrib); | ||
| 510 | break; | ||
| 511 | } | ||
| 512 | } | ||
| 513 | else | ||
| 514 | { | ||
| 515 | this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, element, attrib); | ||
| 516 | } | ||
| 517 | } | ||
| 518 | |||
| 519 | var pluginVS05 = namespaceParent.Equals("MS_VSIPCC_v80", StringComparison.Ordinal); | ||
| 520 | var pluginVS08 = namespaceParent.Equals("MS.VSIPCC.v90", StringComparison.Ordinal); | ||
| 521 | |||
| 522 | if (null == namespaceParent) | ||
| 523 | { | ||
| 524 | this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "TargetCollection")); | ||
| 525 | } | ||
| 526 | |||
| 527 | if (null == feature && (pluginVS05 || pluginVS08) && YesNoType.No == suppressExternalNamespaces) | ||
| 528 | { | ||
| 529 | this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "TargetFeature")); | ||
| 530 | } | ||
| 531 | 76 | ||
| 532 | this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element); | 77 | this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element); |
| 533 | 78 | ||
| 534 | if (!this.Messaging.EncounteredError) | 79 | this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "Wix4VSFindInstances", this.Context.Platform, CustomActionPlatforms.X86 | CustomActionPlatforms.X64); |
| 535 | { | ||
| 536 | section.AddSymbol(new HelpPluginSymbol(sourceLineNumbers, parentId) | ||
| 537 | { | ||
| 538 | HelpNamespaceRef = parentId.Id, | ||
| 539 | ParentHelpNamespaceRef = namespaceParent, | ||
| 540 | HxTFileRef = hxt, | ||
| 541 | HxAFileRef = hxa, | ||
| 542 | ParentHxTFileRef = hxtParent, | ||
| 543 | }); | ||
| 544 | |||
| 545 | if (pluginVS05) | ||
| 546 | { | ||
| 547 | if (YesNoType.No == suppressExternalNamespaces) | ||
| 548 | { | ||
| 549 | // Bring in the help 2 base namespace components for VS 2005 | ||
| 550 | this.ParseHelper.CreateComplexReference(section, sourceLineNumbers, ComplexReferenceParentType.Feature, feature, String.Empty, | ||
| 551 | ComplexReferenceChildType.ComponentGroup, "Help2_VS2005_Namespace_Components", false); | ||
| 552 | // Reference CustomAction since nothing will happen without it | ||
| 553 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.CustomAction, "CA_HxMerge_VSIPCC_VSCC"); | ||
| 554 | } | ||
| 555 | } | ||
| 556 | else if (pluginVS08) | ||
| 557 | { | ||
| 558 | if (YesNoType.No == suppressExternalNamespaces) | ||
| 559 | { | ||
| 560 | // Bring in the help 2 base namespace components for VS 2008 | ||
| 561 | this.ParseHelper.CreateComplexReference(section, sourceLineNumbers, ComplexReferenceParentType.Feature, feature, String.Empty, | ||
| 562 | ComplexReferenceChildType.ComponentGroup, "Help2_VS2008_Namespace_Components", false); | ||
| 563 | // Reference CustomAction since nothing will happen without it | ||
| 564 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.CustomAction, "CA_ScheduleExtHelpPlugin_VSCC_VSIPCC"); | ||
| 565 | } | ||
| 566 | } | ||
| 567 | else | ||
| 568 | { | ||
| 569 | // Reference the parent namespace to enforce the foreign key relationship | ||
| 570 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, VSSymbolDefinitions.HelpNamespace, namespaceParent); | ||
| 571 | } | ||
| 572 | } | ||
| 573 | } | 80 | } |
| 574 | 81 | ||
| 575 | private void ParseVsixPackageElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId, string fileId) | 82 | private void ParseVsixPackageElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId, string fileId) |
| @@ -819,10 +326,5 @@ namespace WixToolset.VisualStudio | |||
| 819 | } | 326 | } |
| 820 | } | 327 | } |
| 821 | } | 328 | } |
| 822 | |||
| 823 | private void AddReferenceToRegisterMicrosoftHelp(IntermediateSection section, SourceLineNumber sourceLineNumbers) | ||
| 824 | { | ||
| 825 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.CustomAction, "CA_RegisterMicrosoftHelp.3643236F_FC70_11D3_A536_0090278A1BB8"); | ||
| 826 | } | ||
| 827 | } | 329 | } |
| 828 | } | 330 | } |
diff --git a/src/ext/VisualStudio/wixext/VSExtensionData.cs b/src/ext/VisualStudio/wixext/VSExtensionData.cs index 51199d2c..82c5b118 100644 --- a/src/ext/VisualStudio/wixext/VSExtensionData.cs +++ b/src/ext/VisualStudio/wixext/VSExtensionData.cs | |||
| @@ -13,12 +13,6 @@ namespace WixToolset.VisualStudio | |||
| 13 | /// <value>The default culture.</value> | 13 | /// <value>The default culture.</value> |
| 14 | public override string DefaultCulture => "en-US"; | 14 | public override string DefaultCulture => "en-US"; |
| 15 | 15 | ||
| 16 | public override bool TryGetSymbolDefinitionByName(string name, out IntermediateSymbolDefinition symbolDefinition) | ||
| 17 | { | ||
| 18 | symbolDefinition = VSSymbolDefinitions.ByName(name); | ||
| 19 | return symbolDefinition != null; | ||
| 20 | } | ||
| 21 | |||
| 22 | public override Intermediate GetLibrary(ISymbolDefinitionCreator symbolDefinitions) | 16 | public override Intermediate GetLibrary(ISymbolDefinitionCreator symbolDefinitions) |
| 23 | { | 17 | { |
| 24 | return Intermediate.Load(typeof(VSExtensionData).Assembly, "WixToolset.VisualStudio.vs.wixlib", symbolDefinitions); | 18 | return Intermediate.Load(typeof(VSExtensionData).Assembly, "WixToolset.VisualStudio.vs.wixlib", symbolDefinitions); |
diff --git a/src/ext/VisualStudio/wixext/VSExtensionFactory.cs b/src/ext/VisualStudio/wixext/VSExtensionFactory.cs index c6e0cc31..57d2732d 100644 --- a/src/ext/VisualStudio/wixext/VSExtensionFactory.cs +++ b/src/ext/VisualStudio/wixext/VSExtensionFactory.cs | |||
| @@ -12,7 +12,6 @@ namespace WixToolset.VisualStudio | |||
| 12 | { | 12 | { |
| 13 | typeof(VSCompiler), | 13 | typeof(VSCompiler), |
| 14 | typeof(VSExtensionData), | 14 | typeof(VSExtensionData), |
| 15 | typeof(VSWindowsInstallerBackendBinderExtension), | ||
| 16 | }; | 15 | }; |
| 17 | } | 16 | } |
| 18 | } | 17 | } |
diff --git a/src/ext/VisualStudio/wixext/VSTableDefinitions.cs b/src/ext/VisualStudio/wixext/VSTableDefinitions.cs deleted file mode 100644 index 0c3ca907..00000000 --- a/src/ext/VisualStudio/wixext/VSTableDefinitions.cs +++ /dev/null | |||
| @@ -1,97 +0,0 @@ | |||
| 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.VisualStudio | ||
| 4 | { | ||
| 5 | using WixToolset.Data.WindowsInstaller; | ||
| 6 | |||
| 7 | public static class VSTableDefinitions | ||
| 8 | { | ||
| 9 | public static readonly TableDefinition HelpFile = new TableDefinition( | ||
| 10 | "HelpFile", | ||
| 11 | VSSymbolDefinitions.HelpFile, | ||
| 12 | new[] | ||
| 13 | { | ||
| 14 | new ColumnDefinition("HelpFileKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary Key for HelpFile Table (required).", modularizeType: ColumnModularizeType.Column), | ||
| 15 | new ColumnDefinition("HelpFileName", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Internal Microsoft Help ID for this HelpFile (required)."), | ||
| 16 | new ColumnDefinition("LangID", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Language, description: "Language ID for content file (optional)."), | ||
| 17 | new ColumnDefinition("File_HxS", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Key for HxS (Title) file (required).", modularizeType: ColumnModularizeType.Column), | ||
| 18 | new ColumnDefinition("File_HxI", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Key for HxI (Index) file (optional).", modularizeType: ColumnModularizeType.Column), | ||
| 19 | new ColumnDefinition("File_HxQ", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Key for HxQ (Query) file (optional).", modularizeType: ColumnModularizeType.Column), | ||
| 20 | new ColumnDefinition("File_HxR", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Key for HxR (Attributes) file (optional).", modularizeType: ColumnModularizeType.Column), | ||
| 21 | new ColumnDefinition("File_Samples", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Key for a file that is in the 'root' of the samples directory for this HelpFile (optional).", modularizeType: ColumnModularizeType.Column), | ||
| 22 | }, | ||
| 23 | symbolIdIsPrimaryKey: true | ||
| 24 | ); | ||
| 25 | |||
| 26 | public static readonly TableDefinition HelpFileToNamespace = new TableDefinition( | ||
| 27 | "HelpFileToNamespace", | ||
| 28 | VSSymbolDefinitions.HelpFileToNamespace, | ||
| 29 | new[] | ||
| 30 | { | ||
| 31 | new ColumnDefinition("HelpFile_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "HelpFile", keyColumn: 1, description: "Foreign key into HelpFile table (required).", modularizeType: ColumnModularizeType.Column), | ||
| 32 | new ColumnDefinition("HelpNamespace_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "HelpNamespace", keyColumn: 1, description: "Foreign key into HelpNamespace table (required)."), | ||
| 33 | }, | ||
| 34 | symbolIdIsPrimaryKey: false | ||
| 35 | ); | ||
| 36 | |||
| 37 | public static readonly TableDefinition HelpFilter = new TableDefinition( | ||
| 38 | "HelpFilter", | ||
| 39 | VSSymbolDefinitions.HelpFilter, | ||
| 40 | new[] | ||
| 41 | { | ||
| 42 | new ColumnDefinition("FilterKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary Key for HelpFilter (required).", modularizeType: ColumnModularizeType.Column), | ||
| 43 | new ColumnDefinition("Description", ColumnType.Localized, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Friendly name for Filter (required)."), | ||
| 44 | new ColumnDefinition("QueryString", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Query String for Help Filter (optional)."), | ||
| 45 | }, | ||
| 46 | symbolIdIsPrimaryKey: true | ||
| 47 | ); | ||
| 48 | |||
| 49 | public static readonly TableDefinition HelpFilterToNamespace = new TableDefinition( | ||
| 50 | "HelpFilterToNamespace", | ||
| 51 | VSSymbolDefinitions.HelpFilterToNamespace, | ||
| 52 | new[] | ||
| 53 | { | ||
| 54 | new ColumnDefinition("HelpFilter_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "HelpFilter", keyColumn: 1, description: "Foreign key into HelpFilter table (required).", modularizeType: ColumnModularizeType.Column), | ||
| 55 | new ColumnDefinition("HelpNamespace_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "HelpNamespace", keyColumn: 1, description: "Foreign key into HelpNamespace table (required)."), | ||
| 56 | }, | ||
| 57 | symbolIdIsPrimaryKey: false | ||
| 58 | ); | ||
| 59 | |||
| 60 | public static readonly TableDefinition HelpNamespace = new TableDefinition( | ||
| 61 | "HelpNamespace", | ||
| 62 | VSSymbolDefinitions.HelpNamespace, | ||
| 63 | new[] | ||
| 64 | { | ||
| 65 | new ColumnDefinition("NamespaceKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary Key for HelpNamespace (required)."), | ||
| 66 | new ColumnDefinition("NamespaceName", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Internal Microsoft Help ID for this Namespace (required)."), | ||
| 67 | new ColumnDefinition("File_Collection", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Key for HxC (Collection) file (required).", modularizeType: ColumnModularizeType.Column), | ||
| 68 | new ColumnDefinition("Description", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Friendly name for Namespace (optional)."), | ||
| 69 | }, | ||
| 70 | symbolIdIsPrimaryKey: true | ||
| 71 | ); | ||
| 72 | |||
| 73 | public static readonly TableDefinition HelpPlugin = new TableDefinition( | ||
| 74 | "HelpPlugin", | ||
| 75 | VSSymbolDefinitions.HelpPlugin, | ||
| 76 | new[] | ||
| 77 | { | ||
| 78 | new ColumnDefinition("HelpNamespace_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "HelpNamespace", keyColumn: 1, description: "Foreign key into HelpNamespace table for the child namespace that will be plugged into the parent namespace (required)."), | ||
| 79 | new ColumnDefinition("HelpNamespace_Parent", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "HelpNamespace", keyColumn: 1, description: "Foreign key into HelpNamespace table for the parent namespace into which the child will be inserted (required)."), | ||
| 80 | new ColumnDefinition("File_HxT", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Key for HxT file of child namespace (optional).", modularizeType: ColumnModularizeType.Column), | ||
| 81 | new ColumnDefinition("File_HxA", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Key for HxA (Attributes) file of child namespace (optional).", modularizeType: ColumnModularizeType.Column), | ||
| 82 | new ColumnDefinition("File_ParentHxT", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Key for HxT file of parent namespace that now includes the new child namespace (optional).", modularizeType: ColumnModularizeType.Column), | ||
| 83 | }, | ||
| 84 | symbolIdIsPrimaryKey: false | ||
| 85 | ); | ||
| 86 | |||
| 87 | public static readonly TableDefinition[] All = new[] | ||
| 88 | { | ||
| 89 | HelpFile, | ||
| 90 | HelpFileToNamespace, | ||
| 91 | HelpFilter, | ||
| 92 | HelpFilterToNamespace, | ||
| 93 | HelpNamespace, | ||
| 94 | HelpPlugin, | ||
| 95 | }; | ||
| 96 | } | ||
| 97 | } | ||
diff --git a/src/ext/VisualStudio/wixext/VSWindowsInstallerBackendBinderExtension.cs b/src/ext/VisualStudio/wixext/VSWindowsInstallerBackendBinderExtension.cs deleted file mode 100644 index d0d8648c..00000000 --- a/src/ext/VisualStudio/wixext/VSWindowsInstallerBackendBinderExtension.cs +++ /dev/null | |||
| @@ -1,13 +0,0 @@ | |||
| 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.VisualStudio | ||
| 4 | { | ||
| 5 | using System.Collections.Generic; | ||
| 6 | using WixToolset.Data.WindowsInstaller; | ||
| 7 | using WixToolset.Extensibility; | ||
| 8 | |||
| 9 | public class VSWindowsInstallerBackendBinderExtension : BaseWindowsInstallerBackendBinderExtension | ||
| 10 | { | ||
| 11 | public override IReadOnlyCollection<TableDefinition> TableDefinitions => VSTableDefinitions.All; | ||
| 12 | } | ||
| 13 | } | ||
